首先我想说一下为什么要写这篇文章,当我的需求是异步调用而且还想接受到异步调用的返回值时,百度得到的结果大多数推荐我将异步调用方式改为同步调用,我就在想有没有一种或几种方式去解决异步调用下怎样去同步的获取返回值,所以这篇文章主要在讲解决这个问题的方式,列了几个小例子,有哪些技术如果大家不懂还得继续深入研究一下
当然,如果大家有更好的方法或者某处写错的话欢迎在评论区指正
方式一(jQuery方法):
$.when(ajaxExe()).done(function (data) {
// 获取异步方法的返回值
console.log("retrun",data);
});
function ajaxExe(){
var defer = $.Deferred();
$.ajax({
...
success: function(data){
// 返回值调用resolve方法
defer.resolve(data);
}
});
return defer