我使用mbostock queue.js脚本加载几个json文件,方法如下:
var q = queue()
.defer(d3.json, "world-110m.json")
.defer(d3.tsv, "world-country-names.tsv")
.await(ready);“就绪”是加载所有文件时要执行的函数。
我想通过添加延迟来预加载图像。这个是可能的吗?我试过几种方法,但不起作用。
我认为必须创建一个函数,但我不能使它是异步的,队列一直在等待。
发布于 2013-08-06 17:46:07
以下是queue.js对回调的期望
回调遵循Node.js惯例,其中第一个参数是一个可选的错误对象,第二个参数是任务的结果。
因此,代码的简单版本可能如下所示:
var loadImage = function(src, cb) {
var img = new Image();
img.src = src;
img.onload = function(){ cb(null, img); };
img.onerror = function(){ cb('IMAGE ERROR', null); };
};
queue()
.defer(d3.json, "data/flare.json")
.defer(d3.csv, "data/test.csv")
.defer(loadImage, "img/test.png")
.await( function(error, jsondata, csvdata, imagedata) {
if (error) { console.log('error', error); }
else { console.log('success', jsondata, csvdata, imagedata) }
});我不知道您想返回什么(如果有的话),但是在上面的示例cb(null, img)中,我返回了整个对象。
https://stackoverflow.com/questions/18081023
复制相似问题