如何修复链中最后一个承诺的 return 类型?
How to fix the return type of the last promise in a chain?
我想 return 链中的最后一个承诺作为函数的结果。我正在使用 TypeScript 1.7 和原生的 ES6 承诺。
我试过了,但 TS 将第一个承诺视为 return 值(Uint8Array),而不是来自 importKey 的 CryptoKey。我看过 JavaScript 个例子,让我觉得最后一个承诺实际上是 return 值,所以也许 TS 只是感到困惑?
private getKey(): Promise<Uint8Array> {
return localforage.getItem<Uint8Array>("key")
.then<Uint8Array>((derivedKeyData) => {
return crypto.subtle.importKey("raw", derivedKeyData, { name: "AES-GCM" }, false, ["decrypt"]);
});
}
如何 return 将内部承诺作为函数的结果?或者至少在不使函数的 return 类型为 "any"?
的情况下让 TS 相信这是真正发生的事情
我在 http://www.typescriptlang.org/Playground 上查看了您的代码,问题似乎是 importKey 的内置结果类型是 'any'
我想 return 链中的最后一个承诺作为函数的结果。我正在使用 TypeScript 1.7 和原生的 ES6 承诺。
我试过了,但 TS 将第一个承诺视为 return 值(Uint8Array),而不是来自 importKey 的 CryptoKey。我看过 JavaScript 个例子,让我觉得最后一个承诺实际上是 return 值,所以也许 TS 只是感到困惑?
private getKey(): Promise<Uint8Array> {
return localforage.getItem<Uint8Array>("key")
.then<Uint8Array>((derivedKeyData) => {
return crypto.subtle.importKey("raw", derivedKeyData, { name: "AES-GCM" }, false, ["decrypt"]);
});
}
如何 return 将内部承诺作为函数的结果?或者至少在不使函数的 return 类型为 "any"?
的情况下让 TS 相信这是真正发生的事情我在 http://www.typescriptlang.org/Playground 上查看了您的代码,问题似乎是 importKey 的内置结果类型是 'any'