【发布时间】:2018-08-09 11:48:02
【问题描述】:
我正在使用 Express JS (Express 4) 框架创建一个 API。我对 NodeJS 很陌生,所以我想知道在同一个函数中执行多个异步调用的最佳方法。
对于这个例子,我的登录控制器中有一个名为 Login 的函数。在这个函数中,假设我要进行相当多的异步调用来验证用户、保存登录信息和类似的功能。
但是对于某些异步调用,要处理的数据应该从之前的异步调用中获取(它们是依赖函数),而有些函数不是这样的。
现在,我就是这样打电话的。
exports.login = function (req, res) {
var user = {
email: 'fakeemail@id.com',
password: 'password'
};
//Async call 1
Login.authUser(user, function (err1, rows1) {
var user_id = rows1[0].id;
//Async call 2 (depends on async call 1 for user_id)
Login.fetchUserDetails(user_id, function (err2, rows2) {
//Async call 3
Login.updateLoginInfo(param3, function (err3, rows3) {
//Some functionality occurs here then async call 4 happens
//Async call 4
Login.someOtherFunctionality(param4, function (err4, rows4) {
//return response to user
res.json({
success: true
});
});
});
});
});
};
现在所有这些异步调用都是嵌套的。有没有其他方法可以做到这一点?
P.S:我没有在这个例子中添加错误处理
【问题讨论】:
标签: node.js express asynchronous node-async