我正在实现一个代码来将所有标签保存到db。如果发现1个错误,我拒绝承诺。下面的代码供参考。
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;
}
};
如果所有代码都在save_tags
函数中成功保存,我想知道如何解决save_tag
函数中的承诺。
我正在使用npm Q库。
答案 0 :(得分:1)
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);
}
};
https://github.com/kriskowal/q/wiki/API-Reference#promiseall
答案 1 :(得分:-1)
self.save_tag(tag, post_id).then(function _returnOK(){
//def.resolve();
}).fail(function _returnFail(){
//def.reject();
});
我认为它会解决。