我有一個異步函數,它將回調分爲一個對象success
和error
,這個函數接受一個參數(除了回調)"pink"
。如何嵌套基於數組的異步函數?
async("pink",{
success:function(){
},
error:function(){
}
});
我想使這個函數,它在數組中,並返回async
行動true
或false
值的複數形式。
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);
}
});
};
如果你要更頻繁地做到這一點(和你),我建議你使用這個偉大的小LIB:https://github.com/willconant/flow-js – mkoryak