RxJS from

2020-10-13 18:41 更新

从数组,类似数组的对象,Promise,可迭代对象或类似 Observable 的对象创建一个 Observable。

  1. from<T>(input: any, scheduler?: `SchedulerLike`): `Observable`<T>

参量

输入 类型:any
调度器 可选的。默认值为 undefined。类型:SchedulerLike

returns

Observable<T>

描述

几乎将任何东西都转换为 Observable。

从大理石图

from 将各种其他对象和数据类型转换为 Observable。它还将 Promise,类似数组的 对象或可迭代的对象转换为 Observable,该对象发出该 Promise,数组或 可迭代的项。在这种情况下,字符串被视为字符数组。类似可观察对象的对象(包含以 ES2015 Symbol for Observable 命名的函数)也可以通过此运算符进行转换。

例子

将数组转换为Observable

  1. import { from } from 'rxjs';
  2. const array = [10, 20, 30];
  3. const result = from(array);
  4. result.subscribe(x => console.log(x));
  5. // Logs:
  6. // 10
  7. // 20
  8. // 30

将无限迭代(从生成器)转换为Observable

  1. import { from } from 'rxjs';
  2. import { take } from 'rxjs/operators';
  3. function* generateDoubles(seed) {
  4. let i = seed;
  5. while (true) {
  6. yield i;
  7. i = 2 * i; // double it
  8. }
  9. }
  10. const iterator = generateDoubles(3);
  11. const result = from(iterator).pipe(take(10));
  12. result.subscribe(x => console.log(x));
  13. // Logs:
  14. // 3
  15. // 6
  16. // 12
  17. // 24
  18. // 48
  19. // 96
  20. // 192
  21. // 384
  22. // 768
  23. // 1536

使用异步调度程序

  1. import { from, asyncScheduler } from 'rxjs';
  2. console.log('start');
  3. const array = [10, 20, 30];
  4. const result = from(array, asyncScheduler);
  5. result.subscribe(x => console.log(x));
  6. console.log('end');
  7. // Logs:
  8. // start
  9. // end
  10. // 10
  11. // 20
  12. // 30

也可以看看

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号