如何修复链中最后一个promise的返回类型?

时间:2016-02-13 16:42:46

标签: javascript typescript promise es6-promise

我想作为函数的结果返回链中的最后一个promise。我正在使用TypeScript 1.7和本机,ES6承诺。

我尝试了这个,但是TS将第一个promise视为返回值(Uint8Array),而不是importKey中的CryptoKey。我见过JavaScript的例子让我觉得最后的承诺实际上是返回值,所以TS可能只是混淆了吗?

private getKey(): Promise<Uint8Array> {
    return localforage.getItem<Uint8Array>("key")
        .then<Uint8Array>((derivedKeyData) => {
            return crypto.subtle.importKey("raw", derivedKeyData, { name: "AES-GCM" }, false, ["decrypt"]);
        });
}

作为函数的结果,我如何返回内部承诺?或者至少说服TS在没有使函数的返回类型为“any”的情况下真正发生了什么?

1 个答案:

答案 0 :(得分:1)

我查看了http://www.typescriptlang.org/Playground上的代码,问题似乎是内置的importKey类型是'any' enter image description here