gpt4 book ai didi

typescript - 函数返回另一个函数的Promise时的错误处理

转载 作者:行者123 更新时间:2023-12-03 08:23:41 24 4
gpt4 key购买 nike

我是ES6 Promises的新手,并想知道在以下情况下的错误处理:

// Base function
private async someFunction(...): Promise<T> {
// returns Promise<T>
}

public async anotherFunction(...): Promise<T> {
try {
// stuff
return someFunction(...);
} catch (error) {
return Promise.reject(error);
}
}
anotherFunction返回带有各种参数的 someFunction。我的问题是,这里的try/catch是否足以处理 someFunction引发的错误?还是我应该做 return someFunction(...).catch(err => ...)或这完全是不好的做法?

谢谢

最佳答案

这是行不通的。

try{
Promise.resolve(1)
.then(() => {
throw new Error('111');
});
} catch (e) {
console.log(e);
}

这将无法正常工作。
try{
Promise.resolve(1)
.then(() => {
return Promise.reject('something is wrong');
});
} catch (e) {
console.log(e);
}

但这是可行的。
Promise.resolve(1)
.then(() => {
try{
throw new Error('Something is wrong...');
} catch (e) {
return Promise.reject(e.message);
}
})
.catch((reason) => {
console.log(reason);
});

关于typescript - 函数返回另一个函数的Promise时的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49480378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com