node.js - 如何在循环中调用后续回调?
问题描述
在我的 Nodejs 应用程序中,我需要通过一些查询从数据库中选择一组数据。开始时未定义大量查询,我需要在每个数据库查询后检查是否需要进行另一个查询。所以像这样的过程
var total_result = [];
var n = 0;
db.query('.....query...', function(result, error){
// Callback with db data response
total_results.push(...result...);
n += result.length;
if (n < req_n) {
// ... Here is the code to repeat the same query ...
// ?????
}
});
谢谢你。
解决方案
var total_result = [],
n = 0
while(await query())
async function query() {
return new Promise((resolve, reject) => {
db.query('...query...', (result, error) => {
if(error) reject(error)
// Callback with db data response
total_results.push(...result...)
n += result.length
if (n < req_n) resolve(true)
else resolve(false)
})
})
}
推荐阅读
- reactjs - 使用 .map 创建 MUI 列表项时,提供给“ForwardRef(ListItemIcon)”的“字符串”类型的无效道具“子项”
- python - 如何使用requirements.txt为不同的python 3版本指定不同的包版本
- c# - 在将 SingleValueExtendedProperties 放入图形事件时遇到问题,当我在调试中查看它时它总是出现 null
- javascript - AngularJS ng-repeat 不适用于 Promise.all
- nginx - 运行 nginx 时,我无法访问 gunicorn 提供的 Flask 网站
- java - 如何在 IntelliJ IDEA 中使用 Opencsv 注释?
- java - 当一个模块的依赖也是同一个 IntelliJ 项目中的一个模块时,管理本地 Maven 依赖版本
- python - 如何在使用 Selenium Python 之前定位伪元素 ::before
- swift - 移除 UIAlertController 结束动画
- jquery - 在 jQuery Ajax 中传递多个参数?