因此,我试图确保在尝试将数据呈现到可视化之前发生一系列 HTTP GET 请求。典型的交易,对吧?
我正在使用 queue.js,并在 queue.js github 页面(https://github.com/mbostock/queue)上看到了这个:
或者,如果您想连续运行大量异步任务(这里表示为闭包数组):
var q = queue(1);
tasks.forEach(function(t) { q.defer(t); });
q.awaitAll(function(error, results) { console.log("all done!"); });
Queue.js 可以在 Node.js 或浏览器中运行。
因此,我所做的是创建了一个函数数组,每个函数都包含一个 Meteor.http.get 调用(因为我使用的是 Meteor.js),然后逐行执行。
似乎正在发生的事情是,虽然我的数组——其中有 8 个函数,每个插槽中都有正确的函数——被填充(然后像在代码中一样传递给 defer,)只有一个实际运行。
这就是我想知道的。好吧,总的来说,为什么只有一个函数在运行,尽管传递了 8 个函数来延迟?但具体来说——对闭包有一个模糊的理解,我真的有很多函数。有什么我错过的吗,因为文档特别提到了闭包,这就是为什么所有函数都没有执行的原因?
谢谢你看这个!