jsonP不支持同步请求

场景:接口A返回了我所需要的一组数据,我要把数据绑定到各个变量上供各方法使用。问题是这个接口需要跨域,而jsonP并不支持同步请求,除了在回调中直接调用其他方法,还有什么办法么?求指教!

var Test = {
    paraA: "",
    paraB: "",
    init: function () {
        this.getData();
        this.renderA();
        this.renderB();
    }
    getData: function () {
        var self = this;
        $.ajax({
            type: 'get',
            url: 'xxx',
            dataType: 'jsonp',
            success: function(result) {
                self.paraA = result.para_a;
                self.paraB = result.para_b;

                console.log("getDate");
            }
        });
    },
    renderA: function () {
        console.log(this.paraA);

        console.log("renderA");
    },
    renderB: function () {
        console.log(this.paraB);

        console.log("renderB");
    }
}

Test.init();

上述代码因为jsonP不支持同步问题,实际打印顺序是renderA renderB getDate
阅读 9k
1 个回答

在init 调用函数时,加上setTimeout 试试,那三个函数给不同的延迟时间。 或者在getData的success里调用那两个函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题