为了账号安全,请及时绑定邮箱和手机立即绑定

如何在多个接口请求成功后才调用方法

如何在多个接口请求成功后才调用方法

慕哥9229398 2019-03-12 16:14:05
需求的问题是现在要a方法调用a接口,获得a接口的数据,再调用方法b,获得b接口的数据,再用a,b接口的数据,作为参数用c方法调取c接口,这里存在a接口与b接口调用时间的未知,请问如何单线的调用完整,这里并不想作为接口调取成功的回调函数反复回调
查看完整描述

8 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

const [a, b] = await Promise.all([getA(), getB()]);

const c = await getC(a, b);


查看完整回答
反对 回复 2019-03-15
?
阿晨1998

TA贡献2037条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-15
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

在c方法中添加if判断


查看完整回答
反对 回复 2019-03-15
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

用promise异步就可以了啊


查看完整回答
反对 回复 2019-03-15
?
三国纷争

TA贡献1804条经验 获得超7个赞

watch到接口数据后才执行方法


查看完整回答
反对 回复 2019-03-15
?
守着一只汪

TA贡献1872条经验 获得超3个赞

查看完整回答
反对 回复 2019-03-15
?
GCT1015

TA贡献1827条经验 获得超4个赞

使用ES7新特性
syanc await轻松解决

通过babel转换即可

So ez


查看完整回答
反对 回复 2019-03-15
?
精慕HU

TA贡献1845条经验 获得超8个赞

说一个比较原始的方法,定时器。用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)

        }

    })

}


查看完整回答
反对 回复 2019-03-15
  • 8 回答
  • 0 关注
  • 1205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信