Javascript 在发出进一步的ajax请求之前,请等待令牌
我正在使用一个包装API的类。它正在利用Axios。为了向API发出请求,我需要一个JWT令牌,该令牌使用API密钥通过另一个请求检索:Javascript 在发出进一步的ajax请求之前,请等待令牌,javascript,asynchronous,axios,Javascript,Asynchronous,Axios,我正在使用一个包装API的类。它正在利用Axios。为了向API发出请求,我需要一个JWT令牌,该令牌使用API密钥通过另一个请求检索: async setAuthorizationHeader() { const res = await this.Axios.post('/login', { api_key: '' }); this.AuthToken = res.data.token this.Axios.defaults.headers.c
async setAuthorizationHeader() {
const res = await this.Axios.post('/login', {
api_key: ''
});
this.AuthToken = res.data.token
this.Axios.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`
}
一旦加载了脚本并且构造函数中运行了setAuthorizationHeader
方法,该类就会被实例化,因此它会在开始时发送一个登录请求。我的问题是,如果我想在页面加载上运行另一个API调用,我不能,因为我将收到401,因为我们还没有得到令牌
下面是类中的另一个方法,我也将在页面加载时运行该方法:
async getPromotions() {
const response = await this.Axios({
method: 'POST',
url: '/promotions',
data: {
...this.baseData,
}
})
return response.data
}
在运行getPromotions
请求之前,是否有任何方法等待授权步骤完成
通过这种方式,您可以确保只有在检索到令牌之后才执行所有调用。So的可能重复,
await setAuthorizationHeader();await getPromotions()
?@Bergi当我使用时,我实际接收到“不能在异步函数外使用关键字'await'”请向我们展示如何以及在何处运行这些函数。“setAuthorizationHeader
方法在构造函数中运行”-这实际上就是我最后要做的。感谢您的帮助