需求的问题是现在要a方法调用a接口,获得a接口的数据,再调用方法b,获得b接口的数据,再用a,b接口的数据,作为参数用c方法调取c接口,这里存在a接口与b接口调用时间的未知,请问如何单线的调用完整,这里并不想作为接口调取成功的回调函数反复回调
需求的问题是现在要a方法调用a接口,获得a接口的数据,再调用方法b,获得b接口的数据,再用a,b接口的数据,作为参数用c方法调取c接口,这里存在a接口与b接口调用时间的未知,请问如何单线的调用完整,这里并不想作为接口调取成功的回调函数反复回调
说一个比较原始的方法,定时器。用jQuery实现一下
var time = 0;
var dataA = {};
var dataB = {};
// a接口
function funca() {
$.ajax({
...
success: function(data) {
dataA = data
time ++
if (time === 1) {
func();
}
}
})
}
// b接口
function funcb() {
$.ajax({
...
success: function(data) {
dataB = data
time ++
if (time === 1) {
func();
}
}
})
}
// c接口
function func() {
$.ajax({
data: {
data1: dataA,
data2: dataB
},
success: function(data){
console.log(data)
}
})
}
func1(){
httpxxxxxx.then(data=>resolve(data)).catch(reject(data))
}
func2(){
httpxxxxxx.then(data=>resolve(data)).catch(reject(data))
}
funAll(){
Promise.all(func1(),func2()).then(res=>{
data1=res[0]
data2=res[1]
dosomething()
})
}
9 回答9.4k 阅读
6 回答5k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
4 回答8.8k 阅读
5 回答7.3k 阅读✓ 已解决