gpt4 book ai didi

javascript - 渲染模板时的 Chain Promise

转载 作者:行者123 更新时间:2023-12-03 07:05:41 25 4
gpt4 key购买 nike

获取数据的函数。

获取连接并获取一些数据。省略了一些代码。

function executeSQL(sql, bindParams , options) {
return new Promise(function(resolve, reject) {
...
resolve(result);
});
}

使用该函数的 Controller

exports.index = function(req, res){

database.executeSQL('SELECT 1 FROM DUAL', [] , {})

.then(function(result) {
res.render('index' , { TITLE : 'Lorem Ipsum Blog' });
})

.catch(function(err) {
next(err);
});
};

我的 index Controller 在我的 index 路由中使用。

我需要调用我的executeSQL 函数至少两次。只有在两者都完成后,我才想调用 res.render 并发送我获取的数据。

我如何链接它们?我还需要把它们拴起来吗?我可以异步执行它们吗?一旦它们都完成,我就调用 res.render

最佳答案

使用Promise.allPromise.all(iterable) 方法返回一个 promise ,当可迭代参数中的所有 promise 都已解决时,该 promise 将得到解决。

function executeSQL(sql, bindParams, options) {
return new Promise(function(resolve, reject) {
resolve(result);
});
}
exports.index = function(req, res) {
var pro1 = database.executeSQL('SELECT 1 FROM DUAL', [], {});
var pro2 = database.executeSQL('SELECT 1 FROM DUAL', [], {});
Promise.all([pro1, pro2]).then(function(result) {
console.log(result); //result will be an array
res.render('index', {
TITLE: 'Lorem Ipsum Blog'
});
}).catch(function(err) {
next(err);
});
};

关于javascript - 渲染模板时的 Chain Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36837203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com