我有角度2服务
import * as localforage from "localforage";
import { ReplaySubject } from 'rxjs/ReplaySubject';
@Injectable()
export class CommentService {
private localForage = require("localforage");
addComment (myvalue: string): Observable<Comment[]> {
var reply:ReplaySubject<any> = new ReplaySubject(1);
localforage.setItem(that.key, that.elencoCommenti).then(function (value) {
//throw new Error("Value cannot be 3");
reply.throw(Error('Error2'));
// reply.next( value );
// reply.complete();
});
return reply;
}
}
此服务包含了引发异常的方法。 当我尝试订阅时
submitComment(){
// Variable to hold a reference of addComment
let commentOperation:Observable<string>;
commentOperation = this.commentService.addComment(this.model)
// Subscribe to observable
commentOperation.subscribe(
comments => {
console.log('ok:');
console.log(comments);
},
err => {
// Log errors if any
console.log('error:');
console.log(err);
});
}
我没有收到错误。 如何在ReplaySubject中引发异常?
答案 0 :(得分:6)
reply.error("some error");
应该这样做。
但是我建议你不要在ReplaySubject
中抛出错误 - 因为任何错误都会最终确定Subject
并使其无法用于将来的使用,并会自动取消订阅任何订阅者 - 除非是你想在这里实现什么。