iT邦幫忙

0

Ionic 4 Events 換 RxJS

  • 分享至 

  • xImage
  •  

本週為了 icon 把 Ionic 4 升級到 5 了,有點吃飽了沒事幹,升級之後才想到 Events 淘汰了,評估過後決定改用 RxJS 的 Subject 來替換原本的功能,底下就簡單紀錄一下相關寫法。

先看看原本 Events 的寫法,訂閱:

constructor(
    private event: Events,
) {
    this.event.subscribe('event:', (data) => {
        console.log(data)
    });
}

發送:

this.event.publish('event:', 'gogo');

現在要換成 RxJS,先建立 service:

import {Injectable} from '@angular/core';
import {Subject} from 'rxjs';

@Injectable({
    providedIn: 'root'
})

export class Service {
    result = new Subject();

    constructor() {
    }

    receive(result) {
        this.result.next(result);
    }
}

訂閱:

this.service.result.subscribe((res: any) => {
    console.log(res);
});

發送:

save(data) {
    this.service.receive(data);
}

RxJS 的 Subject 還有其他幾種,BehaviorSubject、ReplaySubject、AsyncSubject,大家可以在 Google 看看相關差異,找到適合自己情境的用法。

RxJS 官網連結


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言