我正在使用angular检查Stomp Chat客户端的代码,开发人员创建了一个服务,强制接收,它返回一个承诺。然后在控制器中,它解决了承诺,但......我不理解结构。
ChatService.receive().then(null, null, function(message) {
$scope.messages.push(message);
});
据我所知,then有两个参数,onSuccess函数和onError函数。那么为什么前两个null和thrid是处理成功的那个?如果我需要处理错误,我怎么能这样做?
答案 0 :(得分:1)
第三个参数是notifyCallBack
函数。
来自文档:
Promise API
方法
then(successCallback, [errorCallback], [notifyCallback])
- 无论何时或将要解决或拒绝承诺,只要结果可用,就会异步调用其中一个成功或错误回调。使用单个参数调用回调:结果或拒绝原因。此外,在解决或拒绝承诺之前,可以将通知回调调用零次或多次以提供进度指示。此方法返回一个新的承诺,该承诺通过
successCallback
,errorCallback
的返回值解析或拒绝(除非该值是一个承诺,在这种情况下,它使用的值解析)使用promise chaining解决了该承诺。它还通过notifyCallback
方法的返回值进行通知。无法通过notifyCallback
方法解决或拒绝承诺。errorCallback
和notifyCallback
参数是可选的。
承诺通知不会很好地构成1,也不属于ES6 Promises。相反,请考虑使用rxJS Observables中广泛使用的Angular 2+,为未来提供更好的途径。