亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

cpu內存已被榨干

有人和我一樣 在第三個球去往300px的路上卡的走不動的嗎 ?遞歸加回調 直接把內存和cpu榨干了

正在回答

3 回答

粗粗想了一下有可能是第一個方法 回調函數一直占用著上一層的函數 形成了閉包 而resolve()是再調用了整個函數 不是從函數內部去調用 所以不會對資源有大量損耗。 也可能我寫的第一段代碼本身有問題。。

0 回復 有任何疑惑可以回復我~

同樣的邏輯 但是這段代碼流暢運行

var ball1 = document.querySelector('.ball1');

?var ball2 = document.querySelector('.ball2');

?var ball3 = document.querySelector('.ball3');

var Promise = window.Promise; ? ?//Bug window 寫成了Window

? ? ? ? function promiseAnimate(ball,distance){

? ? ? ? ? ? return new Promise(function(resolve,reject){

? ? ? ? ? ? ? ? function _animate(){ ? //此處在函數前加上_是私有函數書寫規范

? ? ? ? ? ? ? ? ? ? var marginLeft = parseInt(ball.style.marginLeft,10);

? ? ? ? ? ? ? ? ? ? setTimeout(function(){

? ? ? ? ? ? ? ? ? ? ? ? if ( marginLeft == distance) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? resolve();

? ? ? ? ? ? ? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? ? ? ? ? ? ? if (marginLeft < distance) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? marginLeft++;

? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? marginLeft--;

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ball.style.marginLeft = marginLeft+'px'; ? //Bug此處需要加px

? ? ? ? ? ? ? ? ? ? ? ? _animate();

? ? ? ? ? ? ? ? ? ? },13);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? _animate();

? ? ? ? ? ? })

? ? ? ? }

? ? ? ? promiseAnimate(ball1,100)

? ? ? ? ? ? .then(function(){

? ? ? ? ? ? ? ? return promiseAnimate(ball2,200)

? ? ? ? ? ? })

? ? ? ? ? ? .then(function(){

? ? ? ? ? ? ? ? return promiseAnimate(ball3,300)

? ? ? ? ? ? })

? ? ? ? ? ? .then(function(){

? ? ? ? ? ? ? ? return promiseAnimate(ball3,150)

? ? ? ? ? ? })

? ? ? ? ? ? .then(function(){

? ? ? ? ? ? ? ? return promiseAnimate(ball2,150)

? ? ? ? ? ? })

? ? ? ? ? ? .then(function(){

? ? ? ? ? ? ? ? return promiseAnimate(ball1,150)

? ? ? ? ? ? })


0 回復 有任何疑惑可以回復我~

這是第一段榨干內存的代碼

var ball1 = document.querySelector('.ball1');

? ? ? ? var ball2 = document.querySelector('.ball2');

? ? ? ? var ball3 = document.querySelector('.ball3');

? ? ? ? // function animate(ball,distance,callback){

? ? ? ? // ? ? var marginLeft = parseInt(ball.style.marginLeft,10);

? ? ? ? // ? ? setTimeout(function(){

? ? ? ? // ? ? ? ? if ( marginLeft == distance) {

? ? ? ? // ? ? ? ? ? ? callback && callback();

? ? ? ? // ? ? ? ? } else {

? ? ? ? // ? ? ? ? ? ? if (marginLeft < distance) {

? ? ? ? // ? ? ? ? ? ? ? ? marginLeft++;

? ? ? ? // ? ? ? ? ? ? }else {

? ? ? ? // ? ? ? ? ? ? ? ? marginLeft--;

? ? ? ? // ? ? ? ? ? ? }

? ? ? ? // ? ? ? ? }

? ? ? ? // ? ? ? ? ball.style.marginLeft = marginLeft+'px'; ? //Bug此處需要加px

? ? ? ? // ? ? ? ? animate(ball,distance,callback);

? ? ? ? // ? ? },13);

? ? ? ? // }

? ? ? ? // animate(ball1,100,function(){

? ? ? ? // ? ? animate(ball2,200,function(){

? ? ? ? // ? ? ? ? animate(ball3,300,function(){

? ? ? ? // ? ? ? ? ? ? animate(ball3,150,function(){

? ? ? ? // ? ? ? ? ? ? ? ? animate(ball2,150,function(){

? ? ? ? // ? ? ? ? ? ? ? ? ? ? animate(ball1,150,function(){

? ? ? ? // ? ? ? ? ? ? ? ? ? ? ? ? //回調結束

? ? ? ? // ? ? ? ? ? ? ? ? ? ? })

? ? ? ? // ? ? ? ? ? ? ? ? })

? ? ? ? // ? ? ? ? ? ? })

? ? ? ? // ? ? ? ? })

? ? ? ? // ? ? })

? ? ? ? // })


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
進擊Node.js基礎(二)
  • 參與學習       76735    人
  • 解答問題       242    個

本教程帶你攻破 Nodejs,讓 JavaScript流暢運行在服務器端

進入課程

cpu內存已被榨干

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號