コールバックをオブジェクトに分割する非同期関数がsuccess
ありerror
、この関数は(コールバック以外に)1つのパラメーターを取ります"pink"
。
async("pink",{
success:function(){
},
error:function(){
}
});
配列を取り、アクションのtrue
orfalse
値を返すこの関数の複数バージョンを作成したいと思います。async
asyncs(["blue","red","green"],function(values){
console.log(values); // [true,true,true];
});
トリックは、各acync
アクションが次の範囲内にある必要があり、関数の値 (true
またはfalse
) がpushed()
「グローバル」 (スコープがより高い) 変数にある必要があり、最後にvalues
マスターに返される(が配列に到達したとき) ことです。 )callback(values)
count
length
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);
}
});
};