Angular rxjs订阅函数-等待事件
我有以下代码:Angular rxjs订阅函数-等待事件,angular,rxjs,Angular,Rxjs,我有以下代码: runThisFunction.subscribe(); 在这个函数中,我必须处理两个场景。一个在显示模式和用户单击ok之后立即返回一个可观察到的,然后发送该可观察到的。我的问题是我可以立即返回而没有任何问题,但是我如何延迟发送obvservable直到用户单击ok? 我得到一个错误,该错误是未定义的 runThisFunction() { //This is what I have and it returns fine. How do I do the same but
runThisFunction.subscribe();
在这个函数中,我必须处理两个场景。一个在显示模式和用户单击ok之后立即返回一个可观察到的,然后发送该可观察到的。我的问题是我可以立即返回而没有任何问题,但是我如何延迟发送obvservable直到用户单击ok?
我得到一个错误,该错误是未定义的
runThisFunction() { //This is what I have and it returns fine. How do I do the same but after a modal event?
let result = new Observable(observable => observable.next(data));
return result;
}
试试下面
- 定义
说主题
。除非调用processConfirmedSubject$
Subject上的
函数,否则Subject不会发出next()
- 定义一个函数来触发
。此函数只包含processConfirmedSubject$
processConfirmedSubject$.next()
- 将
赋值给变量,比如runThisFunction()
myFunction$
- 使用
rxjs
- 订阅合并的可观测数据
processConfirmedSubject$ = new Subject();
processConfirmed$ = this.processConfirmedSubject$.asObservable();
confirmAction() {
this.processConfirmedSubject$.next();
}
myFunction$ = runThisFunction();
combinedFunction$ = combineLatest([this.myFunction$, this.processConfirmed$]).pipe(
map(([myFunction]) => myFunction)
)
ngOnInit() {
combinedFunction$.subscribe()
}
使用上述方法,无论何时调用函数
confirmation()
可观察到的重新评估都会像确认对话框一样进行那么,必须调用函数runThisFunction。也就是说,您必须执行“runThisFunction()”而不仅仅是“runThisFunction”。“runThisFunction”是方法引用,而不是方法调用。