首页 > 代码库 > 与你相遇好幸运,async解决循环回调问题

与你相遇好幸运,async解决循环回调问题

由于使用的sailsjs框架,用的是sailsjs自身带的ORm(就是waterline),ORM的默认数据库的返回值在回调里面。

>

arg是一个数组

count用来计数用

tmpArr临时存放变量

假设是Users模型根据arg数组里面的u_number来查询

查询后需要的结果在properties[‘u_hometown‘],然后把结果放在新的数组里面

最后循环结束后正好得到一个正确的tmpArr

var count = 0;var tmpArr = [];async.whilst(  function() { return count < arg.length; },  function(callback) {    Users.find({u_number:arg[count].u_number}).exec(function(err,resul){      err && sails.log.error(err);      if(resul.length == 0){        sails.log.error(‘notfound‘);        var tmp = "";      }else{        var tmp =  resul[0].properties[‘u_hometown‘]      }      arg[count][‘u_homwtown‘] = tmp;      tmpArr.push(arg[count]);      count++;      callback(null, count);    });  },  function (err, result) {    err && sails.log.error(err);    console.dir(result);    console.dir(tmpArr);  });

 

与你相遇好幸运,async解决循环回调问题