【发布时间】:2013-02-09 12:50:52
【问题描述】:
我正在做这样的事情
$.getJSON(url1, function(response1){
if(response1.status == 'success'){
$.getJSON(url2, function(response2){
if(response2.status == 'success') {
$.getJSON(url3, function(response3){
if(response3.status == 'success') {
//final code here
}
});
}
});
}
});
我听说过像 https://github.com/caolan/async#series 这样的异步库 在这种情况下如何实现?
【问题讨论】:
-
你没有实现它!你按照自己的方式来做,如果你想让它看起来更干净,你可以使用 deferreds 和 promises 来做同样的事情。
-
您拥有的代码已经是异步的,如果您想要像@adeneo 建议的那样更简洁的代码,您可以使用differed/promise api。如果你想测试异步特性,你可以在
$.getJson()调用之后添加console.log('after post'),在if(response2.status == 'success')语句之前添加console.log('after callback') -
如上建议使用 jQuery Deferreds,请查看api.jquery.com/jQuery.when
标签: javascript jquery async.js