我正在将JS文件转换为TS。这是有问题的原始代码。
let refreshToken = null;
if (refreshToken == null) {
refreshToken = // get the axios instance...
}
refreshToken
.then(() => { // something })
.catch(() => { // something })
.finally(() => { // something });
所以我将其转换为:
let refreshToken : AxiosPromise | null = null;
if (refreshToken == null) {
refreshToken = // get the axios instance...
}
refreshToken
.then(() => { // something })
.catch(() => { // something })
.finally(() => { // something });
但是finally
给我一个错误:
Promise类型不存在“最终”属性。
那是为什么?
解决这个问题的方法只是写(refreshToken as any)
,但这似乎是一个解决方案。 TypeScript是否应该能够推断refreshToken
是AxiosPromise
?
答案 0 :(得分:1)
list3 = [list(pair) for pair in zip(list1, list2)]
并将其添加到顶部
$ npm install axios promise.prototype.finally --save
答案 1 :(得分:1)
或者,您可以在链的最后一部分附加一个.then
。带有原生Promise的示例(此行为应该相同)true / false如下:
function fakeGet(passed) {
return new Promise((resolve, reject) => setTimeout(passed ? resolve : reject, 1000));
}
function onComplete(passed) {
console.log(passed ? 'Success' : 'Failed')
}
fakeGet(true)
.then(() => true)
.catch(() => false)
.then(onComplete);
fakeGet(false)
.then(() => true)
.catch(() => false)
.then(onComplete);