0
点赞
收藏
分享

微信扫一扫

jquery实现多个异步方法的同步调用


js顺序执行两个异步方法
需求场景:[由于某种影响,框架环境不能支持es6的promise语法]
1、第一下拉框需要进行加载字典【已经封装好的方法1】异步
2、加载完成字典之后才能赋值【方法2】
3、另外一个方法需要取到表单中的下拉框的值,作为查询条件进行查询【方法3】
我们想要调用方法3,但是方法2没有执行完成,方法3查询不到结果,所以我们就需要链式调用。

解决方案一:
setTimeout(function () {
    //延迟调用方法2,使其加载成功之后,再延迟调用方法3
},1000)

解决方案二:
一直监听表单中的下拉框的值是否有值,如果有值,再进行方法3的调用。

解决方案三:
$.when(func1(file)).done(function () {
         ……逻辑代码
    })

function func1() {
    var dfd = $.Deferred();
    $.ajax({
        type:'post',
        url: url
        success:function (result) {
            ……逻辑代码
            dfd.resolve();
        },
        error:function () {
          ……逻辑代码
            dfd.reject();
        }
    });
    return dfd.promise()

举报

相关推荐

0 条评论