如何在循环中调用后续回调?

时间:2018-06-07 04:10:26

标签: node.js loops for-loop foreach callback

在我的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 ...
        // ?????
    }
});

谢谢。

1 个答案:

答案 0 :(得分:1)

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)
   })
  })
}