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上的
    next()
    函数,否则Subject不会发出
  • 定义一个函数来触发
    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”是方法引用,而不是方法调用。