2017-05-18 8 views
0
var promises = J_lis.each(function(i){ 
    // Deferred from promises 
    var dfd = $.Deferred(); 
    var setSrc = this.src; 
    var setId = this.id; 

    setTimeout(function() { 
     // Looping thought image 
     that._loadCanvasImage(setId, setSrc); 
     // Resolve 
     dfd.resolve(); 
    }, (i+1)*5000); 

    // Return promise 
    return dfd.promise(); 
}).get(); 

// Get when loop each is finished 
    $.when.apply($, promises).then(function() 
    { 
    console.log("done"); 
    }); 

私の意図がループである、それは一つの他の機能を動かし、私はから約束を使いますjs。約束及び繰延が働いていない、仕上がりが

my機能show doneconsole.logからすべての画像がループされます。

私のコードに何が間違っていますか?どのように私はすべての画像がループされていることを確認して、then関数に渡す?

答えて

0

.each()は、J_lisを返します。

.map()を使用します。

+0

私の関数loadCanvasImageが完了する前に最後のループショーが完了したことをありがとうと思いますか? –

+0

は '_loadCanvasImage'非同期ですか? –

関連する問題