首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将XHR添加到Queue.js以显示进度

试图将XHR添加到Queue.js以显示进度
EN

Stack Overflow用户
提问于 2014-04-01 20:19:03
回答 1查看 371关注 0票数 1

我正试图通过以下代码向我的文件中添加一个进度表:进度事件

我有一个进展良好的XHR,如下所示:

代码语言:javascript
复制
d3.csv("data/WLAN2.csv")
    .on("progress", function() {
      var i = d3.interpolate(progress, d3.event.loaded / d3.event.total);
      d3.transition().tween("progress", function() {
        return function(t) {
          progress = i(t);
          foreground.attr("d", arc.endAngle(twoPi * progress));
          text.text(formatPercent(progress));
        };
      });
    })
    .get(function(error, data) {
      meter.transition().delay(250).attr("transform", "scale(0)");
    })

我现在尝试在Queue.js中添加这一点,但是它不起作用:

代码语言:javascript
复制
queue()
.defer(d3.csv("data/WLAN2.csv")
    .on("progress", function() {
      var i = d3.interpolate(progress, d3.event.loaded / d3.event.total);
      d3.transition().tween("progress", function() {
        return function(t) {
          progress = i(t);
          foreground.attr("d", arc.endAngle(twoPi * progress));
          text.text(formatPercent(progress));
        };
      });
    })
    .get(function(error, data) {
      meter.transition().delay(250).attr("transform", "scale(0)");
    })
)
.await(transformData);

我知道错误:

未指明的TypeError:对象#没有“应用”方法

如果我尝试了一个非常简单的版本,它就会奏效:

代码语言:javascript
复制
queue()
.defer(d3.csv("data/WLAN2.csv")
    .on("progress", function() { 
       console.log("Loading data/WLAN2.csv: ",formatPercent(d3.event.loaded/d3.event.total));                                                        })
    .get) 
.await(transformData);

任何帮助都是感激的,我不明白为什么它不起作用。我想我可以把一个有效的XHR传递给Queue.js。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 08:17:09

Queue.js希望得到一个接受回调参数的函数。在您的代码中,您传递的是一个求值的函数,因此它无法工作。下面的代码应该。

代码语言:javascript
复制
queue()
.defer(function(f) {
  d3.csv("data/WLAN2.csv")
    .on("progress", function() {
       var i = d3.interpolate(progress, d3.event.loaded / d3.event.total);
       d3.transition().tween("progress", function() {
         return function(t) {
           progress = i(t);
           foreground.attr("d", arc.endAngle(twoPi * progress));
           text.text(formatPercent(progress));
         };
     });
  })
  .get(function(error, data) {
    meter.transition().delay(250).attr("transform", "scale(0)");
    f(error, data);
  })
})
.await(transformData);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22796065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档