使用仅.catch
部分的承诺是否有任何不足之处,但根本没有.then
?
我问的是不需要解析结果的情况,只是错误处理。
这是一个很好的模式,仅依靠.catch
并跳过.then
吗?
或者它取决于它的承诺实施是什么?
答案 0 :(得分:9)
从概念上讲,只有一个错误处理程序并且在成功完成时没有其他任何操作的操作没有错。如果这就是它所需要的,那就没问题了。例如,假设您正在使用客户端的一些新数据更新服务器。如果数据成功发送到服务器,那么没有别的事可做,因为操作已经完成,但是如果出现错误,那么可能还有别的事情要做(重试,通知用户,根据错误代码等纠正数据......)。
要评论这是否是设计特定代码的正确方法,我们必须查看实际代码并了解它的作用,然后就这是否是最佳方式形成意见构造特定代码。
如果我正在设计一个通用功能,我肯定会同时提供完成(解决承诺)和错误(拒绝承诺),这样调用者就可以挂钩。但是他们想知道哪些事件真的取决于调用者,如果只有错误很重要,那么只需要.catch()
即可。