学习 rxjs 我正在玩弄它。
我的代码:
// RxJS v6+
import { withLatestFrom, map } from 'rxjs/operators';
import { interval } from 'rxjs';
const source = interval(1000);
const example = source.pipe(
map(value => value +1),
map(value => {
if(value === 40) {
finish();
}
else if (value % 5 === 0){
return 'can devide by 5 we did some magic';
}else{
return value;
} })
);
const subscribe = example.subscribe(
val => console.log(val),
error => console.log("Error handled: " , error),
() => console.log('resolved'));
我的想法是运行它 40 次然后完成 observable(这可能是另一个要求,例如查看 10:00 的值是否为 10(主要目标是对值进行评估并强制完成))。
我正在寻找占位符finish() 的替代品,因为finish 不存在。如何使用解析功能
() => console.log('resolved')
订阅方法?我找到了How can I complete Observable in RxJS但答案是从 2015 年开始,我假设现在有一个针对当前 rxjs 版本的答案。
最佳答案
Acuatally 仍然是相同的,您只需要使用管道运算符。您可以查看示例 here
import { interval, timer } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
const source = interval(1000);
const timer$ = timer(5000);
const example = source.pipe(takeUntil(timer$));
const subscribe = example.subscribe(val => console.log(val));
关于javascript - rxjs如何完成observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59137083/