第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

前端RxJs響應(yīng)式編程之操作符實(shí)踐

標(biāo)簽:
AngularJS

常用操作符

本地使用环境为rollup+rxjs,具体的rollup配置,请参考另一篇文章,这里不再赘述。

import { of,Observable, interval,Subject ,from,bindCallback} from 'rxjs';
import { version } from './package.json';
import { ajax } from 'rxjs/ajax';
import { map, catchError } from 'rxjs/operators';

const someFunction = (a, b, c) => {
   console.log("a"); // 5
   console.log("b"); // 'some string'
   console.log("c"); // {someProperty: 'someValue'}
 };
  
 const boundSomeFunction = bindCallback(someFunction);
 boundSomeFunction().subscribe(values => {
   console.log(values) // [5, 'some string', {someProperty: 'someValue'}]
 });

from

//逐行输出 1,2,3
import { from} from 'rxjs';
const arr = [1,2,3];
const result$ = from(arr);
result$.subscribe(res => console.log(res));

range

//逐行输出 1-10
import { range } from 'rxjs';

const numbers = range(1, 10);
numbers.subscribe(x => console.log(x));

timer

//1 ....
import { timer } from 'rxjs';

const numbers = timer(3000,1000); //延迟3s,定时1s
numbers.subscribe(x => console.log(x+1));

interval

// 1....
import { interval } from 'rxjs';

const numbers = interval(1000);
numbers.subscribe(x => console.log(x+1));

of

// 输出数组  [1,2,3]
import { of } from "rxjs";

const arr = [1,2,3]
const result$ = of(arr);
result$.subscribe(res => console.log(res));

// 逐行1,2,3
const result$ = of(1,2,3);
result$.subscribe(res => console.log(res));

条件判断

import { defer, fromEvent, interval,of } from 'rxjs';

const clicksOrInterval = defer(() => { //es6 支持
   return Math.random() > 0
   ? of('click')
   : interval(1000);
});
clicksOrInterval.subscribe(x => console.log(x));
import { defer, fromEvent, interval,of, iif } from 'rxjs';
let isFisrt;
const clicksOrInterval = iif(
   () => isFisrt,
   of('first'),
   of('second')
);
isFisrt = true;
clicksOrInterval.subscribe(x => console.log(x));

isFisrt = false;
clicksOrInterval.subscribe(x => console.log(x));

延迟

import { fromEvent ,of} from 'rxjs';
import { delay } from 'rxjs/operators';

const res = of(1,2,3);
const delayedClicks = res.pipe(delay(1000)); // each click emitted after 1 second
delayedClicks.subscribe(x => console.log(x));

防抖

import { fromEvent } from 'rxjs';
import { throttle } from 'rxjs/operators';

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(throttle(ev => interval(1000)));
result.subscribe(x => console.log(x));

map

import { of} from 'rxjs';
import { delay,map} from 'rxjs/operators'; //注意map引入

const res = of(1,2,3);
const delayedClicks = res.pipe(map(item => item * 2)); // each click emitted after 1 second
delayedClicks.subscribe(x => console.log(x));

filter

import { of} from 'rxjs';
import { delay,filter} from 'rxjs/operators';

const res = of(1,2,3);
const delayedClicks = res.pipe(filter(item => item % 2 === 0)); // each click emitted after 1 second
delayedClicks.subscribe(x => console.log(x));

本文作者:前端首席体验师(CheongHu)

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消