【发布时间】:2018-05-15 09:15:47
【问题描述】:
更新了 Promise 示例。
我正在运行 NodeJS,但遇到了多个 if-statements 和 return-statements 的问题。
我正在尝试使用Promise,这似乎是一种可行的方法。
这是我的示例代码:
const express = require('express');
const app = express();
const pgPromise = require('pg-promise')();
const db = pgPromise(CONNECTION_STRING);
app.use((req, res) => {
var message = "";
promise1 = new Promise((resolve, reject) => {
message += "promise1";
if (false) {
reject(message);
}
});
promise2 = new Promise((resolve, reject) => {
if (true) {
db.one('SELECT 1')
.then(row => {
message += " promise2";
resolve(message);
})
.catch(err => {
message += " error";
reject(message);
});
}
});
var printResult = (results) => {console.log("Results = ", results, "message = ", message)}
Promise.all([promise1, promise2]).then(printResult);
return res.json({ message: message });
});
app.listen(3000);
似乎没有等待 Promise 2 完成数据库查询。
如何确保在返回任何语句之前完成数据库查询?
【问题讨论】:
-
那个代码不会有那个效果。您需要提供minimal reproducible example
-
考虑回答此问题的人,请注意,有 3 人发布了未能说明问题中的返回语句的答案(在发表此评论时已删除了 2 人)。
-
还没有有用的答案 - 所以欢迎所有答案。
-
尝试更新整个问题,以便更容易理解挑战。
标签: javascript node.js express if-statement