将async:false AJAX函数转换为$ .Deferred

时间:2018-11-19 13:20:00

标签: javascript jquery ajax jquery-deferred

我现在正努力工作两天,试图将带有async:false的简单AJAX函数转换为漂亮的jQuery Deferred()。我尝试返回AJAX响应的所有操作均不起作用:-(

这是我的旧(短)代码版本:

function uiText($textID) {
   var text = $.ajax({
     url: "uitext.php",
     async: false,
     success: function(response){}
   };
   return text.response;
}
console.log(uiText('foo'));  //shows me the response from uitext.php

如何使用$ .Deferred和/或$ .when()。done()

迈克(Thx Mike)

1 个答案:

答案 0 :(得分:0)

  

$。Deferred和/或$ .when()。done()

不要。那已经过时了。 $.ajax返回一个Promise兼容对象。

function uiText($textID) {
   const request = $.ajax({
     url: "uitext.php"
   });
   return request;
}

uiText('foo').then( response => console.log(response) );