我正在编写单元测试以确保catch在以下函数中起作用:
df[which(df$student %in% df$student[which(df$addQual >0)]), ]
student semester addQual
1 John 1 1
2 John 2 0
3 John 3 0
4 John 4 0
5 John 5 1
6 John 6 0
14 Jeremy 1 0
15 Jeremy 2 0
16 Jeremy 3 1
17 Jeremy 4 0
18 Jeremy 5 1
}
我无法从外部的内部捕获中捕获错误,因为我的单元测试失败了。
我尝试将内部函数中的catch排除,但是没有用。
如果在getSomeMorePromises()中未解析promise,我将如何确保在外部返回错误并将其捕获?
答案 0 :(得分:1)
承诺链是由您从then()
回调中返回的承诺组成的。
仅在then()
回调中创建承诺不会链接到它或以任何方式处理其错误。
你需要归还这些承诺:
function myFunction() {
const myPromises = Promise.all(getMyPromises())
return myPromises.then(objArray => {
return Promise.all(objArray.map(getOtherPromise));
)).then(response => {
return Promise.all(getSomeMorePromises());
});
}