我有这段代码:
Q.spread([
Q.nfcall(employee.save.bind(employee)),
],function(emp){
Q.spread([Q.nfcall(dept.save.bind(dept))],function(dept){
console.log("success")
},function(e){
console.error(e);
mongoose.disconnect();
})
},function(e){
console.error(e);
mongoose.disconnect();
})
虽然效果很好,但它看起来像是厄运的金字塔。有没有办法重构它更“有前途”?
我预计这样的事情会起作用:
Q.spread([
Q.nfcall(employee.save.bind(employee))
]).then(function(emp){
var dept = new Department();
return Q.spread([
Q.nfcall(dept.save.bind(dept))
])
}).then(function(dept){
console.log("success");
}).catch(function(e){
console.error(e);
})
但事实并非如此。
答案 0 :(得分:0)
Q.nfcall(employee.save.bind(employee)).spread(function(emp, numberAffected) {
return Q.nfcall(dept.save.bind(dept));
}).spread(function(dept, numberAffected) {
console.log("success");
mongoose.disconnect();
}).catch(function(e) {
console.error(e);
});