パイプではなく、チェーンするだけで、プロミスをチェーンしようとしています。
たとえば、次の方法があります。
var execute = function(x){
// this could be an AJAX call
var d= $.Deferred();
console.log('Begin ' + x);
setTimeout(function(){
console.log('End ' + x);
d.resolve();
},500);
return d;
};
そして、このメソッドを何度も実行したいのですが、次々と実行します。を使用する以外の方法を作成しましたが、使用eval
にはあまり満足していませんeval
:
var executeTimes = function(r){
var s = '';
for(var i=0;i<r;i++){
s = s + 'execute('+i+')';
if(i!==r-1)
s = s + '.then(function(){';
}
for(var i=0;i<r-1;i++){
s= s+'})';
}
eval(s);
}
アイデアは、次のexecuteTimes(3);
出力を取得することです。
Begin 0
End 0
Begin 1
End 1
Begin 2
End 2
ここにライブの例を作成しました: http://jsfiddle.net/vtortola/Cfe5s/
最善の解決策は何ですか?
乾杯。