コールバックをオブジェクトに分割する非同期関数がsuccessありerror、この関数は(コールバック以外に)1つのパラメーターを取ります"pink"。
async("pink",{
success:function(){
},
error:function(){
}
});
配列を取り、アクションのtrueorfalse値を返すこの関数の複数バージョンを作成したいと思います。async
asyncs(["blue","red","green"],function(values){
console.log(values); // [true,true,true];
});
トリックは、各acyncアクションが次の範囲内にある必要があり、関数の値 (trueまたはfalse) がpushed()「グローバル」 (スコープがより高い) 変数にある必要があり、最後にvaluesマスターに返される(が配列に到達したとき) ことです。 )callback(values)countlength
async()これは、各関数をネストして を返す非常に初歩的な方法ですが、配列値valuesのみを手動で追跡するため、制限があります。3
var asyncs = function(params,mstrCB){
var length = params.length;
var values = [];
async(param[0],{
success:function(){
values.push(true);
async(param[1],{
success:function(){
values.push(true);
async(param[2],{
success:function(){
values.push(true);
mstrCB(values);
},
error:function(){
values.push(false);
mstrCB(values);
}
});
},
error:function(){
values.push(false);
mstrCB(values);
}
});
},
error:function(){
values.push(false);
mstrCB(values);
}
});
};