lit*_*ude 1 javascript jquery asynchronous
我有这样的事情:
fun1: function (){
var jqXHR = $.get(
"http://url.com",
"search=toto",
function(){});
jqXHR.fail(function (jqXHR, textStatus, errorThrown){
//do something
});
jqXHR.done(function (data,textStatus,jqXHR){
//do something
});
}
fun2: function (){
fun1();
//do something AFTER my AJAX requests are finished
}
Run Code Online (Sandbox Code Playgroud)
我想等待我的AJAX请求在继续之前完成.为实现这一点,我通常会在fun1()中使用回调函数.但我的代码现在包含几个级别的回调,它看起来很混乱.然后,我想使用该$.when方法,但我不知道如何做到这一点:因为fun1不是延迟对象,我不能只写:
$.when(fun1()).then(//do something);
Run Code Online (Sandbox Code Playgroud)
$.when当你等待多个承诺时,它们非常有用.在您的情况下,您似乎不需要它.
在这里你只需jqXHR要从函数返回对象:
fun1: function (foo){
// ...
return jqXHR;
}
fun2: function() {
fun1().then(function() {
// ...
});
}
Run Code Online (Sandbox Code Playgroud)
$.get实现promise接口返回的对象,因此您可以直接将回调附加到它.该文档还提供了几个示例:http://api.jquery.com/jQuery.get/.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |