我有一个函数search
,它当前返回Promise<MyObject[]>
:
export function search(args: SearchInput) {
return SomeInterface.performSearch(args)
.then(xmlRequest => AnotherInterface.post(xmlRequest))
.then(xmlResponse => SomeInterface.performSearchResponse(xmlResponse)) // performSearchResponse returns Promise<MyObject[]>
.then(searchResponse => searchResponse.forEach(convertIDs)); // returns Promise<void>
}
function convertIDs(obj: MyObject) {
if (obj.id === 'foo') {
obj.id = 'bar';
}
return obj;
}
我尝试在末尾添加一个新行,将convertIDs
应用于函数的结果。但是在这样做时,函数不再返回Promise<MyObject[]>
,而是返回Promise<void>
。这反过来又将代码进一步分解到期望此函数的结果为Promise<MyObject[]>
类型的行。
有没有一种方法可以将这个convertIDs
函数应用到结果中,同时保持原始的返回类型?
1条答案
按热度按时间sgtfey8w1#
使用逗号运算符取回原始值
(逗号运算符将删除除最后一个返回值以外的所有值)
那和