Promise做動畫,then 無法執行
不知道是里錯了,只有第一次調用promiseAnimate(),ball1動了,接下來的都沒有運動。應該是then沒有執行。
var?Promise?=?window.Promise; ????????function?promiseAnimate(ball,distance){ ????????????return?new?Promise(function(resolve,reject){ ????????????????function?_animate(){ ????????????????????setTimeout(function(){ ????????????????????????var?marginLeft?=?parseInt(ball.style.marginLeft,10); ????????????????????????if(marginLeft?===?distance){ ????????????????????????????resolve ????????????????????????}else{ ????????????????????????????if(marginLeft?<?distance){ ????????????????????????????????marginLeft++; ????????????????????????????}else{ ????????????????????????????????marginLeft--; ????????????????????????????} ????????????????????????????ball.style.marginLeft?=?marginLeft?+?'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) ????????????})
2016-08-29
應該是 resolve()
2016-12-22
謝謝,我也是同樣的問題,跟著視頻寫的代碼怎么都調不對,汗 ,開始是那個px ?自己弄出來了,這個then不執行,直接把我弄懵了
2016-09-17
請問你們是怎么測試的?直接在瀏覽器輸入網址?不需要發布什么的嗎?