Ng 实现Observable 和 subscribe (一) (实用、备忘)

175 篇文章 1 订阅
139 篇文章 0 订阅

原文出处: Angular7入门辅助教程(五)——Observable(可观察对象)
方法一:

import { of } from 'rxjs/observable/of';
...
    private doTest() {
        //创建Observable对象
        let observable = of(1, 2, 3);
 
        //调用方法1:
        observable.subscribe({ next: num => console.log(num) });

        //调用方法2:
        observable.subscribe(num => { console.log(num) });
    }



调用方法1 和 调用方法2 结果一样如下:

 

方法二:
 

import { Observable } from 'rxjs';
...
    private doTest() {
        //创建Observable对象
        const observable = Observable.create(observer => {
            try {
                observer.next(1);
                observer.next(2);
                observer.next("x");
            } catch (e) {
                observer.error(e);
            }
            observer.complete();
        });

        // 调用方法1: 
        const observer = {
            next: num => console.log(num),
            error: e => console.log(e),
            complete: () => console.log('complete!!!')
        }
        observable.subscribe(observer);

        // 调用方法2: 
        observable.subscribe(res => {
            console.log(res);
        });
    }

调用方法1 结果如下:
 |
调用方法2 结果如下:


实现方法总结:
1、创建一个Observable(可观察对象),它会将参数一个一个的发送给订阅的observer;
2、创建一个observer(观察者),它包含三个属性:next,error,complete均为函数,对Observable发来的参数进行接收并处理;
3、Observable调用subscribe方法告知observer对Obsverable的消息进行了订阅,并返回一个subscription对象(可以随时用unsubscribe()取消订阅);
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值