RxJS from

2020-10-13 18:41 更新

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

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

參量

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

returns

Observable<T>

描述

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

從大理石圖

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

例子

將數(shù)組轉(zhuǎn)換為Observable

import { from } from 'rxjs';


const array = [10, 20, 30];
const result = from(array);


result.subscribe(x => console.log(x));


// Logs:
// 10
// 20
// 30

將無限迭代(從生成器)轉(zhuǎn)換為Observable

import { from } from 'rxjs';
import { take } from 'rxjs/operators';


function* generateDoubles(seed) {
   let i = seed;
   while (true) {
     yield i;
     i = 2 * i; // double it
   }
}


const iterator = generateDoubles(3);
const result = from(iterator).pipe(take(10));


result.subscribe(x => console.log(x));


// Logs:
// 3
// 6
// 12
// 24
// 48
// 96
// 192
// 384
// 768
// 1536

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

import { from, asyncScheduler } from 'rxjs';


console.log('start');


const array = [10, 20, 30];
const result = from(array, asyncScheduler);


result.subscribe(x => console.log(x));


console.log('end');


// Logs:
// start
// end
// 10
// 20
// 30

也可以看看

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)