我有一个异步函数,它将它的回调分解为一个对象success,并且error这个函数需要一个参数(除了回调)"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)(当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);
}
});
};