gpt4 book ai didi

typescript - Observable 中的 observer.throw 和 observer.error 有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:05 27 4
gpt4 key购买 nike

observer.throw(err)observer.error(err) 有什么区别?

我正在使用 RxJS 版本“5.0.0-beta.12”

var innerObservable = new Observable(observer => {
console.log('Inner observable call failed');
observer.error(new Error('Call failed!'));
})


var outerObservable = new Observable(observer => {
innerObservable.subscribe(
data => {
observer.next(data);
observer.onCompleted();
},
err => {
//observer.throw(err); // `console.error` doesn't get called
observer.error(err); //// `console.error` it's called
}
)
});

outerObservable.subscribe(
next => {
console.log('ok!');
}
, err => {
console.error('error');
}
, () => {
console.log('done');
}
);

最佳答案

事实上,您的观察者是 Subscriber class 的一个实例.它有 error() 方法,但没有 throw() 方法。
Observable.throw() 但这是不同的东西。

  • observer.throw(err) 不存在。

  • Observable.throw(err) 是一个仅发出单个 error 通知的 Observable。

  • observer.error() 通常在 Observable.create() 回调中使用以发送 error 通知(就像.next().complete) 给新订阅的观察者。

关于typescript - Observable 中的 observer.throw 和 observer.error 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41951004/

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