获取数据的功能。
获取连接并获取一些数据。省略了一些代码。
function executeSQL(sql, bindParams , options) {
return new Promise(function(resolve, reject) {
...
resolve(result);
});
}
使用该功能的控制器
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
路径中使用了index
控制器。
我需要至少调用我的executeSQL函数两次。只有在完成这两项操作后,我才能调用res.render
并发送我提取的数据。
如何链接它们?
我甚至需要链接它们吗?我是否可以异步执行它们,一旦完成它们,我就会调用res.render
。
答案 0 :(得分:1)
使用Promise.all
, Promise.all(iterable)方法返回一个promise,它在iterable参数中的所有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);
});
};