Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous 异步瀑布行为?_Asynchronous_Node Async - Fatal编程技术网

Asynchronous 异步瀑布行为?

Asynchronous 异步瀑布行为?,asynchronous,node-async,Asynchronous,Node Async,我想知道,在这样的代码中,async是否只有在上一步完成后才开始执行下一步 async.waterfall([ function(callback){ var $ = cheerio.load(result); $(".kltat").each(function() { var link = $(this); var text = link.tex

我想知道,在这样的代码中,async是否只有在上一步完成后才开始执行下一步

  async.waterfall([

        function(callback){

           var $ = cheerio.load(result);

               $(".kltat").each(function() {
                  var link = $(this);
                  var text = link.text();

                  text = text.replace(/\./g, "");

                  var statement = searchQuery.replace(/ /g,"_") + text.replace(/ /g,"_");
                  statements.push(statement);

        });

        callback(null,statements);

    },
    function(statements, callback){
    // ....
    callback(null,statements);

  }
 ], function (err, statements) {
    }
响应内联:

 async.waterfall([
  async.constant({url: 'http://abc.xyz'}), 
  scrapePage,
  saveDatabase
], waterfalFinished);


  function scrapPage(request, callback) {
    var $ = cheerio.load(request.url);

    $(".kltat").each(function() { // you could use map instead of each
      var link = $(this);
      var text = link.text();
      text = text.replace(/\./g, "");
      var statement = searchQuery.replace(/ /g,"_") + text.replace(/ /g,"_");
      statements.push(statement);
    });

    // to call the next step in the chain we must call 'callback'
    // maybe if you rename to next makes more sense for you.

    // the first parameter (nodejs convention) is the error. 
    // if you pass error the chain will be halted and jump directly to 
    // waterfallFinished function.

    // the order of arguments you call the CALLBACK matter. it means
    // the order that next step (saveDatabase) is expecting receive the arguments

    callback(null, request, statements);

  }


  function saveDatabase(request, statements, callback) {
    callback(null, requenst , statements);
  }

  function waterfalFinished(err, request, statements) {
    if (err)
     // your error handling here

    console.log(request, statements);
  }
干杯,伙计 快乐编码\0/