需要授权才能调用某些api,如何做到批量调用api的时候等待授权成功后再执行调用?异步锁?

特殊需求,只有在调用api的时候申请ajax授权。

目前会进页面批量调用不同api,如何确保所有api执行在授权成功后调用。

这些api触发时只触发一次ajax授权。
A.js

function callApi(options, api) {
    f9Config().then(function () {
        api(options);
    });
}

B.js

callApi({}, xxx.A)
callApi({}, xxx.B)
callApi({}, xxx.C)

类似这样,页面直接批量调用了callApi。怎么确保f9Config只执行一次ajax授权呢。es5的

特殊需求,B.js不能修改

阅读 2.4k
2 个回答

做个锁就好啦

const auth = undefined

function callApi(options, api) {
    if(!auth){
        auth = f9Config()
    }
    auth.then(function () {
        api(options);
    });
}
推荐问题