这是当前的代码,用了async模块
async.eachSeries(ids, function (id, callback) {
Article.remove({_id: id}, function (err) {
if (err) {
callback(err);
}
})
}, function (err) {
if (err) {
return handleError(res, err);
}
return res.send(204);
});
求助用bluebird怎么做 谢谢
6 回复
同问,目前我是这样处理的感觉不好.
return new Promise(function(resolve,reject){
async.each(ids, function(id,cb){
XXXXX;
cb()
}, function(err){
if(err) reject(err)
else resolve()
})
})
var remove = Promise.promisify(Article.remove)
Promise
.resolve(ids)
.map(function (id) {
return remove({ _id: id })
})
.then(function (results) {
res.sendStatus(204)
})
.catch(next)
@haio 这样写报错了
我修改了一下
var remove = function (id) {
return new Promise(function (resolve, reject) {
Article.remove({_id: id}, function (err) {
if (err) {
reject(err);
}else{
resolve();
}
});
});
};
Promise
.map(ids, function (id) {
return remove(id);
})
.then(function (results) {
return res.send(204);
})
.catch(function (err) {
return res.send(500, err);
});
这样写能跑通 就是不知道符合规范不