在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ 如何在多個接口請求成功后才調(diào)用方法

如何在多個接口請求成功后才調(diào)用方法

需求的問題是現(xiàn)在要a方法調(diào)用a接口,獲得a接口的數(shù)據(jù),再調(diào)用方法b,獲得b接口的數(shù)據(jù),再用a,b接口的數(shù)據(jù),作為參數(shù)用c方法調(diào)取c接口,這里存在a接口與b接口調(diào)用時間的未知,請問如何單線的調(diào)用完整,這里并不想作為接口調(diào)取成功的回調(diào)函數(shù)反復(fù)回調(diào)

回答
編輯回答
萌吟
2018年4月23日 23:48
編輯回答
綰青絲

Promise.all(func1(),func2()).then(res=>{
doSomething()
})

2018年8月8日 10:48
編輯回答
玩控

watch到接口數(shù)據(jù)后才執(zhí)行方法

2017年7月22日 05:34
編輯回答
陌上花

使用ES7新特性
syanc await輕松解決

通過babel轉(zhuǎn)換即可

So ez

2018年8月27日 03:12
編輯回答
背叛者

在c方法中添加if判斷

2018年6月25日 23:39
編輯回答
愿如初

用promise異步就可以了啊

2017年5月21日 06:33
編輯回答
不歸路

說一個比較原始的方法,定時器。用jQuery實現(xiàn)一下

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)
        }
    })
}
2017年11月6日 22:55
編輯回答
不將就
const [a, b] = await Promise.all([getA(), getB()]);
const c = await getC(a, b);
2018年9月12日 11:03
編輯回答
離觴
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()
    })
}
2018年6月6日 18:21