如何使用rxjs取消异步操作?
我想通过按钮如何使用rxjs取消异步操作?,rxjs,cancellation,Rxjs,Cancellation,我想通过按钮async increment触发异步操作,但单击按钮cancel取消它 我的代码与rxjs的race不兼容 有什么办法可以实施吗 欢迎光临 switchMap如果在前一个请求完成之前出现新请求,则取消前一个请求(完成前一个内部可观察)。 若您想用一个新的流取消请求,您可以将您的流和“ActionOne”合并,并让switchMap决定要做什么 merge( increment$.pipe(mapTo(true)), cancelIncrement$.pipe(mapTo(f
async increment
触发异步操作,但单击按钮cancel
取消它
我的代码与rxjs
的race
不兼容
有什么办法可以实施吗
欢迎光临
switchMap
如果在前一个请求完成之前出现新请求,则取消前一个请求(完成前一个内部可观察)。
若您想用一个新的流取消请求,您可以将您的流和“ActionOne”合并,并让switchMap决定要做什么
merge(
increment$.pipe(mapTo(true)),
cancelIncrement$.pipe(mapTo(false))
).pipe(
switchMap((run) => new Promise(resolve => {
if(run)
setTimeout(() => resolve(2), 2000);
}))
).subscribe(console.log);