Javascript npm Q中循环内的承诺
我正在实现一个将所有标记保存到db的代码。即使发现一个错误,我也拒绝承诺。以下代码供参考Javascript npm Q中循环内的承诺,javascript,node.js,promise,q,Javascript,Node.js,Promise,Q,我正在实现一个将所有标记保存到db的代码。即使发现一个错误,我也拒绝承诺。以下代码供参考 module.exports = { save_tag: function(tag, id) { //Some logic to validate a tag goes here return db.save(tag,id); //db.save is a promise; }, save_tags: function(tags, post_i
module.exports = {
save_tag: function(tag, id) {
//Some logic to validate a tag goes here
return db.save(tag,id); //db.save is a promise;
},
save_tags: function(tags, post_id) {
var def = Q.defer();
_.forEach(tags, function(tag, key) {
self.save_tag(tag, post_id).then(null, def.reject);
});
return def.promise;
}
};
我想知道如果在保存标签
功能中成功保存所有标签,我如何解决保存标签
功能中的承诺
我正在使用NPMQ库
module.exports = {
save_tag: function(tag, id) {
return db.save(tag,id); // db.save is a promise;
},
save_tags: function(tags, post_id) {
var savedTags = _.map(tags, function(tag) {
return self.save_tag(tag, post_id);
});
return Q.all(savedTags);
}
};
我想它会解决的。尽可能简单。。。非常感谢你。。。我现在的生活会很平静…你的生活平静是很容易实现的我只是想在这里做个小记录。如果您想运行每个标记而不考虑通过或失败,请使用Q.allSettled而不是Q.all
self.save_tag(tag, post_id).then(function _returnOK(){
//def.resolve();
}).fail(function _returnFail(){
//def.reject();
});