我正在尝试将数据返回到我的视图模板。我正在使用async.waterfall来做这件事。只有一个问题,该课程的结果总是undefined
控制器:
Profile().then(response => {
console.log(response);
});
模型:
module.exports = async function Profile() {
let waterfall = await Async.waterfall([
function(callback) {
db.getOneWhere('users', 'username', global.req.params.username, ["username"]).then(result => {
callback(null, result);
});
},
function(arg1, callback) {
db.getOneWhere('users', 'username', 'admin', ["username"]).then(result2 => {
let ok = {
arg1,
result2
}
callback(null, ok);
});
}
], function (err, result) {
let tmp = [];
Object.keys(result).forEach(function(k) {
tmp = [...tmp, ...result[k]];
});
return {'data': tmp};
});
return waterfall;
}
let waterfall
始终为undefined
,因此来自Profile.then()...
的回复也未定义。为什么它不起作用,如何解决?
答案 0 :(得分:2)
你可以将execute
包装成Async.waterfall
瀑布的回调,然后只做拒绝/解决承诺。创建的Promise将随瀑布结果一起解析,或者在发生错误时被拒绝。
Promise