不运行fn时异步

时间:2019-05-24 13:01:04

标签: javascript async.js

我想使用async.whilst函数,并且可能在我仅获得输出的第一个console.log时丢失了一些东西。

// app.js文件

var async = require('async');
var count = 0;

async.whilst(
    function () { 
      console.log('first')
      return count < 5; 
    },
    function (callback) {
      count++;
      console.log('second')
      callback()
    },
    function (err) {
      console.log('third')
    }
);

//运行脚本

$ node app.js
first
$

2 个答案:

答案 0 :(得分:1)

看看the documentation:第一个函数还需要回调

var async = require('async');
var count = 0;

async.whilst(
  function (callback) {
    console.log('first')
    return callback(null, count < 5);
  },
  function (callback) {
    count++;
    console.log('second')
    callback()
  },
  function (err) {
    console.log('third')
  }
);

答案 1 :(得分:1)

您应该在第一个函数中使用callback,在调用async时,callback会调用后续函数。您的代码应该是

async.whilst(
    function (cb) { 
      console.log('first')
      cb(null,count < 5); 
    },
    function (callback) {
      count++;
      console.log('second')
      callback()
    },
    function (err) {
      console.log('third')
    }
);