javascript - 在不使用 async/await 的情况下按顺序执行一组 Promise
问题描述
可以说我有一系列的承诺。我的数组的每个元素都是一个 knex.js 查询构建器,可以执行并返回一个 Promise。
如何按顺序运行该数组的每个元素。该数组是动态构建的。
let promisesArray = [q1,q2,q3] ;
每个 q 本身并不是一个 Promise,但它会在执行时返回一个 Promise。
解决方案
这可能是一个可能的选择:
let p = Promise.resolve([]);
promisesArray.forEach(q => {
p = p.then(responses => {
//based on the nature of each q, to start execution
//use either q().then() or q.then()
return q().then(response => {
//Any further logic can be here.
console.log(response);
return responses.concat([response]);
})
})
})
p.then(responses => {
// here you have all of the responses.
})
推荐阅读
- selenium - youtube selenium 评论抓取
- c++builder - 关于程序导出变量
- awk - 在模式前的第一个非注释行之前插入文本
- python - 如何阻止我的 if 语句运行以减少 pygame 中的变量一
- gpu - AutoCAD 要求(现实生活中)
- javascript - 为什么此函数内部未定义某些变量
- python - 嵌套列表理解的输出为空列表,而不是无列表
- javascript - 提取嵌套的 JSON 对象名称未定义?
- swiftui - 如何传递/初始化将接收@Published 的结构?
- sql - 当我使用嵌套的 CASE WHEN 时,关键字“AS”附近的语法不正确