需要授权才能调用某些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.2k
2 个回答

做个锁就好啦

const auth = undefined

function callApi(options, api) {
    if(!auth){
        auth = f9Config()
    }
    auth.then(function () {
        api(options);
    });
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题