Jquery:在返回之前等待回调

前端之家收集整理的这篇文章主要介绍了Jquery:在返回之前等待回调前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 javascript函数,它要求一些ajax数据并获取一个 JSON对象.然后它应该返回对象.

问题是我不知道如何从Ajax回调中返回函数.当然

  1. myFunction: function() {
  2. $.get(myUrl,function(data) {
  3. return data;
  4. });
  5. }

不起作用,因为内部函数返回而不是外部.

另一方面,在回调中执行我需要的东西会破坏我的MVC细分:这个代码在模型中,我喜欢在控制器中使用结果对象.

一个临时的解决方法

  1. myFunction: function() {
  2. var result = $.ajax({
  3. url: myUrl,async: true,dataType: 'text'
  4. }).responseText;
  5. return eval(result);
  6. }

它的缺点是在等待回复时阻塞浏览器(并使用eval,我宁愿避免).

还有其他解决方案吗?

解决方法

您可以将回调函数传递给函数,以便在数据准备就绪时处理数据:
  1. myFunction: function(callback) {
  2. $.get(myUrl,function(data) {
  3. callback( data );
  4. });
  5. }

猜你在找的jQuery相关文章