流:承诺与异步函数中的数组类型不兼容

时间:2019-07-15 03:41:11

标签: javascript flowtype

在我的异步函数中,该函数进行API调用以获取过滤器列表,但出现以下流错误:

由于Promise [1]与数组类型[2]不兼容,因此无法返回数组文字。

在进行两种可能的退货时都会显示。

有人可以解释一下我为什么得到它吗?

使用try / catch块尝试在函数的所有内容周围以及在await语句周围,在catch处返回[]。

不确定如果我发现任何可能的拒绝,为什么会认为我正在兑现承诺。我在想什么,在这里吗?

getSavedFilters: (void) => Array<SavedFilter> = async () => {
    const savedFiltersResponse = await CaseApi.listSavedFilters();

    if (savedFiltersResponse.type === 'Failure') return [];
    return savedFiltersResponse.filters;
};

1 个答案:

答案 0 :(得分:2)

所有异步函数都返回诺言。诺言将解决您返回的一切。因此,由于您要返回包含代码的数组,因此合适的类型定义为:

getSavedFilters: (void) => Promise<Array<SavedFilter>> = async () => {
 // ... etc