在我的异步函数中,该函数进行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;
};
答案 0 :(得分:2)
所有异步函数都返回诺言。诺言将解决您返回的一切。因此,由于您要返回包含代码的数组,因此合适的类型定义为:
getSavedFilters: (void) => Promise<Array<SavedFilter>> = async () => {
// ... etc