RxJS from

2020-10-13 18:41 更新

從數(shù)組,類似數(shù)組的對象,Promise,可迭代對象或類似 Observable 的對象創(chuàng)建一個(gè) Observable。

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

參量

輸入 類型:any。
調(diào)度器 可選的。默認(rèn)值為 undefined。類型:SchedulerLike。

returns

Observable<T>

描述

幾乎將任何東西都轉(zhuǎn)換為 Observable。

從大理石圖

from 將各種其他對象和數(shù)據(jù)類型轉(zhuǎn)換為 Observable。它還將 Promise,類似數(shù)組的 對象或可迭代的對象轉(zhuǎn)換為 Observable,該對象發(fā)出該 Promise,數(shù)組或 可迭代的項(xiàng)。在這種情況下,字符串被視為字符數(shù)組。類似可觀察對象的對象(包含以 ES2015 Symbol for Observable 命名的函數(shù))也可以通過此運(yùn)算符進(jìn)行轉(zhuǎn)換。

例子

將數(shù)組轉(zhuǎn)換為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

將無限迭代(從生成器)轉(zhuǎn)換為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

使用異步調(diào)度程序

  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

也可以看看

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號