【问题标题】:Is there any alternative approach to jquery Deferred function?jquery Deferred 函数是否有任何替代方法?
【发布时间】:2014-10-06 08:28:48
【问题描述】:

我在我的项目中使用的是旧版本的 Jquery Deferred 之外,还有其他方法吗?我认为它可以从 1.5 版中获得。

【问题讨论】:

  • 是的,您可以使用自定义回调代替 Deferred

标签: javascript jquery


【解决方案1】:

你可以使用不同的东西来代替 jQuery defered。例如事件或 $q。 也许这篇文章对你有用 Implement Deferred object without using jquery

【讨论】:

  • 感谢 Georgi,它在有/没有 Defferred 解决方案的 FF 中都能正常工作,但在 chrome/Safari 中却不行。你对此有任何想法吗?
  • 最好显示你的代码。最佳工作 jsfiddle 链接。
【解决方案2】:

是的,你可以做到。这个想法是在调用函数时将函数作为参数传递,当你想从主组件返回时,你调用定义为参数的回调函数。

这样您就可以拥有自己的自定义延迟类似功能。

这是工作代码。我在这里使用了超时。您可以有自己的要求,例如 ajax 成功等。

  var mainComponent = function(yourIp, callback) { // define your maincomponent function
    setTimeout(function(){
      callback("your data");
    },5000)
  }


   mainComponent("any Input", function(responce){ // call your maincomponent function 
 
    console.log("callback from your maincomponent " +responce);
 
   } )

这里在调用 maincomponent 函数时定义了另一个函数作为参数。这个函数将作为回调工作,您可以在 ajax 成功或超时后从 maincomponent 函数定义中调用它。

干杯...

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多