0

我从npmjs > jsdom中获取了示例代码。此过程在几秒钟内执行,并且仅在它之后我想运行第二个操作,例如console.log。但是不要在jsdom的body中插入代码。也许它适用于Node.js > Stream一起工作 要创建一个函数链,下一个过程在上一个结束时立即开始。

我在哪里可以阅读 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");
4

1 回答 1

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");
});
于 2013-08-10T09:44:56.650 回答