首页 > 其他分享 >jquery实现多个异步方法的同步调用

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

时间:2022-11-24 15:04:38浏览次数:61  
标签:jquery 异步 调用 function dfd 方法 下拉框


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()

标签:jquery,异步,调用,function,dfd,方法,下拉框
From: https://blog.51cto.com/u_15890333/5883998

相关文章