我有以下代码:
runThisFunction.subscribe();
在此功能中-我有2种情况。一个立即返回一个可观察对象,并在显示一个模态并且用户单击“确定”后,再发送可观察对象的对象。我的问题是我可以立即返回,没有任何问题,但是如何延迟发送可观察对象,直到用户单击确定? 我收到订阅未定义的错误。
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;
}
答案 0 :(得分:1)
尝试以下;
Subject
说processConfirmedSubject$
。除非我们在next()
Subject
函数,否则主题不会发出
processConfirmedSubject$
。该函数将仅包含processConfirmedSubject$.next()
runThisFunction()
分配给变量myFunction$
combineLatest
中的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()
}
使用上述方法,每当您调用函数confirmAction()
时,可观察到的重估就像确认对话框一样