【发布时间】:2021-02-25 16:15:57
【问题描述】:
我对 Javascript 承诺没有经验,最近我开始在我的 Javascript 项目中使用承诺而不是回调。
当我尝试一个接一个地运行几个 Promise 函数时,我陷入了 then() 的嵌套混乱。代码完全按预期工作,但我的问题是,如果这是一个接一个地解决多个 Promise 函数的方法,那么使用 Promise 而不是回调有什么好处。
如果我没有以正确的方式做这件事,那么你们要求向我展示解决嵌套承诺的正确方法。
下面是我不喜欢它的代码:
exports.editExpense = (req, res, next) => {
Account.findAll().then(accounts => {
Budget.findAll().then(budgets => {
Expense.findAll().then(expenses => {
Expense.findByPk(id).then(expense => {
res.render('expenses/index', {
urlQuery: urlQuery,
expenses: expenses,
expense: expense,
accounts: accounts,
budgets: budgets
});
})
})
})
}).catch(error => console.log(error));
};
【问题讨论】:
-
一个快速的经验法则,所有的 Promise 都应该返回。即使您不这样做,它们也总是返回 Promise。
标签: node.js express sequelize.js