Node.js中的操作顺序

时间:2013-08-10 09:32:55

标签: node.js asynchronous

我从npmjs > jsdom获取了示例代码。此过程在几秒钟内执行,只有在我想要运行第二个操作之后,例如 console.log 。但是不要在jsdom的主体中插入代码。也许它适用于 Node.js>流 什么时候要创建一系列功能,下一个流程会在上一个结束时开始。

我在哪里可以阅读Node.js中的序列?

var jsdom = require("jsdom");

jsdom.env({
  url: "http://news.ycombinator.com/",
  scripts: ["http://code.jquery.com/jquery.js"],
  done: function (errors, window) {
    var $ = window.$;
    console.log("HN Links");
    $("td.title:not(:last) a").each(function() {
      console.log(" -", $(this).text());
    });
  }
});

console.log("The end");

1 个答案:

答案 0 :(得分:2)

您正在寻找Async.js

具体而言,您正在寻找其series()功能(Run an array of functions in series, each one running once the previous function has completed)。

代码示例(基于它的文档):

async.series([
    function(callback){
        jsdom.env({
  url: "http://news.ycombinator.com/",
  scripts: ["http://code.jquery.com/jquery.js"],
  done: function (errors, window) {
    var $ = window.$;
    console.log("HN Links");
    $("td.title:not(:last) a").each(function() {
      console.log(" -", $(this).text());
    });
callback(null, 'one');
  }
});
    },
    function(callback){
        // do some more stuff (second task) ...
        callback(null, 'two');
    }
],
// optional callback
function(err, results){
    console.log("The end");
});