【问题标题】:How to pass sql array to promises如何将sql数组传递给promise
【发布时间】:2017-10-10 23:26:31
【问题描述】:

我有这个代码工作,但非常依赖于查询参数。每个查询都基于请求参数。

var query1P = connection.execute("SELECT * FROM C");

var query3P = connection.execute("SELECT * FROM A");

Promise.all([query1P query3P]).spread(function (result, result3) {
res.status(200).json({ table: result.rows, table3: result3.rows });
return connection.close();
})
.catch(function (err) {
console.log(err.message);
return connection.close();
});

如何在 Promise.all 中传递查询数组

queryArray = [query1P, query2P, query3P]

并将结果返回到数组中。 Promise 中有什么东西可以让我遍历 queryArray 吗?

谢谢

【问题讨论】:

  • 不要传递数组字面量,也不要使用spread 代替then?

标签: javascript promise bluebird


【解决方案1】:

这应该会自动发生(尽管我注意到您的 Promise.all() 调用中 query1P 和 query3P 之间没有逗号。此外,.spread() 应该替换为 .then()

Promise.all(['test', 'blah'])
    .then(function(responses) {
        console.log(responses);
    })

只需将 'test' 和 'blah' 替换为最终会解决的实际承诺。

【讨论】:

  • 我可以这样做Promise.all([array]) .then(function(responses) { console.log(responses); })
  • 没错。传递给 .then() 函数的第一个参数是传递给 .all() 方法的请求的响应数组。
猜你喜欢
  • 2016-05-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多