javascript - rxjs如何完成observable?

标签 javascript angular typescript ecmascript-6 rxjs

学习 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/

相关文章:

javascript - 如何在 React 生命周期方法中正确分派(dispatch)操作?

angular - 有没有办法将 File 和 FormGroup 发布到我的 API?

javascript - TypeScript promise TS2304 TS2529

javascript - jquery ajax 调用和 j_security 重定向

javascript - 当异步设置为 true 时,JAVAFX Ajax 调用偶尔无法添加到请求正文

javascript - 通过ajax根据php返回设置样式

node.js - 通过编译应用程序将 <img src ="phone.png"> 转换为 Base64 <img src ="data:img/png;base64,....">,使图像立即随应用程序加载

html - ngx-datatable 详细信息行未扩展

用于减少的 TypeScript 类型

typescript - 使用 Typescript 初始化 DataLoader 时出现类型错误