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