前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >7. 操作符 from, of, range, interval, timer

7. 操作符 from, of, range, interval, timer

作者头像
mafeifan
发布2019-03-05 09:43:40
5400
发布2019-03-05 09:43:40
举报
文章被收录于专栏:finleyMa

学好rxjs的关键是对Operators (操作符)的灵活使用,操作符就是纯函数,我们使用操作符创建,转换,过滤,组合,错误处理,辅助操作Observables。具体参见 不同的操作符有不同的使用场景,有些名字容易混淆,可以对比的学习。

下面介绍几个可以创建Observable的运算符,具体的介绍请问官网 例子:https://codepen.io/mafeifan/pen/eQKNvN

代码语言:javascript
复制
  const {from, of, range, interval, timer} = rxjs;

  function f() {
    return from(arguments);
  }

  const observer = {
    next: value => {
      console.log('Next: ' + value);
    },
    error: error => {
      console.log('Error:', error);
    },
    complete: () => {
      console.log('Complete');
    }
  }

  // Array Like Object
  f(1, 2, 3).subscribe(observer);

  // string
  // from 接收数组
  // 如果是字符串,会打印每一个字符
  from('foo').subscribe(observer);

  // Set, any iterable object
  const s = new Set(['foo', window]);
  from(s).subscribe(observer);

  // Promise
  const source = from(new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve('Hello RxJS!');
      },3000)
    }));

  source.subscribe(observer);
  // 传啥输出啥
  /*
  Next: 1
  Next: 2
  Next: 3
  */
  of(1, 2, 3).subscribe(observer);

  // Next: 4,5,6
  of([4, 5, 6]).subscribe(observer);

  // https://rxjs-dev.firebaseapp.com/api/index/function/range
  // 从10开始递增+1连续发射两次, 输出 10, 11
  /*
    Next: 10,
    Next: 11
  */
  range(10, 2).subscribe(observer);

  // 从0开始计数,每间隔num ms秒发射一次
  const num = 1000;
  interval(num).subscribe(observer);

  // 延迟2秒发射
  timer(2000).subscribe(observer);

  // 延迟5秒发射, 间隔1秒发射一次
  const subscription = timer(5000, 1000).subscribe(observer);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.02.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档