gpt4 book ai didi

javascript - Async.js 返回 promise

转载 作者:行者123 更新时间:2023-12-02 17:11:05 25 4
gpt4 key购买 nike

我正在使用 async.js 库来实现异步请求流。
下面的代码工作正常。

async.each( 
//--- Collection of models to save ---//
collSaveData,
function(model, callback){
model.save([], {success: function(){
callback();
}});
},
function(err){
console.log('finished');
});

我如何返回 promise ?

我的意思是,像这样的时尚:

var promise = async.each( 
//--- Collection of models to save ---//
collSaveData,
function(model, callback){
model.save([], {success: function(){
callback();
}});
},
function(err){
console.log('finished');
});

最佳答案

您可能不需要 async.js 来发出调用并同步它们。将 Model.save 返回的对象与 $.when 结合起来做出一般性 promise :

var promises = _.invoke(collSaveData, 'save');
var promise = $.when.apply(null, promises);
promise.then(function() {
console.log('all done');
});

还有一把 fiddle http://jsfiddle.net/nikoshr/Z3Ezw/

您可以自定义处理每次保存的响应的方式,例如:

var promises = _.map(collSaveData, function(m) {
return m.save().then(function(response) {
console.log('saved', m);
});
});

关键是为每个模型返回一个 promise 。 http://jsfiddle.net/nikoshr/Z3Ezw/2/

关于javascript - Async.js 返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com