我在这里读了很多问题,但仍然找不到答案。这可能意味着我问了错误的问题,但无论如何,这里都是如此。
我正在尝试在 Vue 中构建我的第一个应用.js使用 REST api 后端,该后端将使用 JWT 令牌进行身份验证。
我正在构建在底部的图层,这些图层将使用公理来发出 ajax 请求。
上面的层处理身份验证,JWT令牌,超时等
然后我就喜欢上了 Vue 的服务、商店和组件
所以我的问题是我如何构建这些层,以便在身份验证错误时,我可以拦截需要登录刷新的401返回,并将承诺传递回链。
我在这里读到,我不应该创造回报新的承诺,而应该回报原来的承诺。
我看到的是,来自getMails的返回具有未定义的结果。
这是我的代码:
async function axios() { // emulate axios returning a promise
return new Promise((resolve, reject) => {
resolve('return from axios');
})
}
// authentication layer. check for 401 and use Promise.reject
async function api() {
await axios().then(
response => {
// if ( response.status==401 )
// Promise.reject(response.status)
console.log('api then: '+response)
return Promise.resolve(response+'~return from api');
})
}
// services layer builds query params etc...
async function getMails() {
return await api();
}
// vuex store to handle emails
// here just run js
getMails().then( function(response){
console.log('back from getMails with:'+response);
//let mails = response;
//console.log('mails: '+mails);
})
请参见 JS小提琴: https://jsfiddle.net/chrisby/y6eocrm0/
阿波罗的战车
相关分类