如何解决从返回异步结果的函数同步抛出错误:反模式?
举一个人为的例子:
function foo(input) {
if (typeof input !== 'string') {
// An error is thrown synchronously here
throw new Error('input must be string');
}
return new Promise(resolve => {
// Do something async here and return the result
});
}
这里,一个错误是同步抛出的,而计算结果是异步返回的。我知道这可以通过拒绝承诺内部的错误来轻松克服(或者更好的是,使用 async
函数并从内部抛出),但是上述模式是否引入了任何奇怪的行为,或者是否考虑过某种意义上的“反模式”?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。