asynchronous - 带有进度事件的 Queue.js

标签 asynchronous queue d3.js

我想加载多个文件以在 D3.js 中使用。 Queue.js 似乎是一个很好的工具。由于 d3.js 在 v3 中支持更高级的 XHR 功能,我想使用 Queue.js 加载多个文件并显示加载进度,并在出错时中止加载所有文件。

这是检查进度和使用 Queue.js 的方法:https://github.com/mbostock/d3/wiki/Upgrading-to-3.0

我不知道如何组合这些代码。

这是我到现在为止所拥有的。 JSFiddle

我认为在 Queue.js 上有一个进度事件处理程序会更好,但我不知道如何实现它。

示例代码:

queue()
  .defer(d3.json, "file1.json") // https://api.github.com/repos/mbostock/d3")
  .defer(d3.json, "file2.json")
  .progress(function() { console.log(d3.event.loaded/d3.event.total; }) // or use argument?
  .error(function(error) { this.abort(); console.log(error); })
  .await(function(data) { console.log(data); });

最佳答案

queue.js 中 queue() 返回的对象没有方法“progress”和“error”。这是源代码的链接:https://github.com/mbostock/queue/blob/master/queue.js .

由于 queue.js 采用 xhr 对象并使用“应用”来执行函数,因此以下解决方法对我有用。它涉及使用 xhr 对象的 get() 方法来执行函数。

示例代码:

queue().defer(d3.json("file1.json")
                 .on("progress", function({console.log(d3.event.loaded);})                                               
                 .get, /*First argument*/ "error")
       .await(function (error, file1_data) {console.log(file1_data);});

希望这对您有所帮助。

关于asynchronous - 带有进度事件的 Queue.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15658990/

相关文章:

c++ - 异步函数错误

javascript - 为基于 SQS 的工作人员设置 future 某个日期的任务?

javascript - D3 弧 - 不可见

javascript - 设置初始 D3 变换属性

JavaScript Promise 设置

Linux open(path, O_NONBLOCK | O_RDONLY | O_DIRECT) 阻止文件读取

android - 试图找到一个android数据结构

python - 如何在 Ruby 和 Python 应用程序之间共享后台作业队列

rCharts nvd3 库强制刻度

javascript - Javascript 的异步加载