我从documentdb查询了一些结果,我想在我的网页上显示它们。我在查询函数中使用promises,这些函数在控制台上显示结果很好,但是当我在app.post
函数中使用它们时,网页上的结果是[object promise]
function query(queryString, callback) {
return new Promise((resolve, reject) => {
client.queryDocuments(collectionUrl, queryString).toArray((err, results) => {
if (err) {
reject(err);
} else {
for (var queryResult of results) {
resultString = JSON.stringify(queryResult);
console.log(`\tQuery returned number of ignition off events: ${resultString}`);
return resultString;
}
resolve(results);
}
});
});
};
app.get("/", function (req, res) {
res.render("index", {action: null});
});
app.post("/", function (req, res) {
let actionText = Task.getDatabase().then(() => Task.query(usercount, Task.getCollection(config.collection.collectionIdUsers)));
res.render("index", {action: actionText});
});
如何将查询功能的结果输出到我的网页?
我希望我的解释清楚,先谢谢。
答案 0 :(得分:0)
你可以直接在代码中看到它,你没有回来"价值"你回来了Promise
return new Promise((resolve, reject) => {
那么猜猜那里保存了什么 - 你已经回复的承诺:
let actionText = Task.getDatabase().then(() => Task.query(usercount,Task.getCollection(config.collection.collectionIdUsers)) );
你必须承诺从承诺中获取价值。
app.post("/", function (req, res) {
Task.getDatabase()
.then(() => Task.query(usercount,Task.getCollection(config.collection.collectionIdUsers)) )
.then(actionText => {
res.render('index',{action : actionText});
})
});