【问题标题】:Passing data between deferred functions在延迟函数之间传递数据
【发布时间】:2011-12-02 13:39:28
【问题描述】:

我在 .done 中使用了一些延迟函数,所以,我有类似的东西:

askTime(number).done(formatTime).done(function(html){
   times += html;
});

但是虽然formatTime 返回datahtml var 有askTime 返回的数据。

我不知道问题出在哪里。 formatTime 接收到由askTime 返回的数据变量,但如果我输入:

askTime(number).done(formatTime(data)).done(function(html)

它说data 没有定义。

【问题讨论】:

  • 试试 askTime(number).done(function(data) {formatTime(data);}).done(function(html)
  • Q 中的不一致,但是虽然 formatTime 返回数据 & formatTime 接收数据变量。 askTIme 的代码,formatTime 会有所帮助。
  • @hungryMind 这两个函数都可以工作,因为它们都是我拆分后能够在其他地方使用它们的同一个函数的一部分。
  • @hungryMind 也是,你的第一次尝试(虽然)对我来说似乎合乎逻辑,但没有奏效:(

标签: javascript jquery


【解决方案1】:

要链接延迟方法,您需要调用.pipe()

看看:http://api.jquery.com/deferred.pipe/

【讨论】:

  • 我正在看,但无法正确理解。给出的例子有点难或不清楚(至少对我来说)
  • @AntonioLaguna 只需尝试“.pipe()”而不是代码中的第一个“.done()”。
  • 我从这里stackoverflow.com/questions/5921283/… 获取了最终代码,并且工作正常,我似乎可以理解,但这并不是文档中的内容。请给我更多的光好吗?
  • 再次感谢@jAndy,您似乎是延迟的大师!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多