typescript 类型'Promise'在类型指令码问题中必须有'[Symbol.iterator]()'

abithluo  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(129)

我有两个位置,我希望从这两个位置得到一个承诺为了缩短代码,我说让函数像这样

const [comments, posts]: Promise<object | null> = await Promise.all(
    [
        CommentsService.getCommentsByInterval(isoInterval, clientId),
        PostsService.getPostsByInterval(isoInterval, domain)
    ]
);

至于功能,一切正常,但我有一个编辑器的错误,我不知道如何解决
第一次
我试图在tsconfig中激活dom.iterator,但它没有帮助我,这是我在其他文章中看到的建议,但我没有解决它你知道为什么会出现这个错误吗?
我尝试为函数给予不同的类型,但没有结果

ryevplcw

ryevplcw1#

await Promise.all不返回承诺。您已经等待它解析。Promise.all返回解析为数组的承诺,因此您的类型实际上应该是:

const [comments, posts]: (object | null)[] = await Promise.all(

此外,我认为您不应该以任何方式对此进行注解... TypeScript应该能够为您推断类型:

const [comments, posts] = await Promise.all(

相关问题