场景:接口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
在init 调用函数时,加上setTimeout 试试,那三个函数给不同的延迟时间。 或者在getData的success里调用那两个函数