• Rxjsconcat


    concat( observable1,observable2,observable3,...,)

    函数功能:

    将多个可观察对象合并成一个可观察对象,调用该对象的时候,会依次调用该对象内部合并的可观察对象,当前调用的可观察对象(内部)数据完成后,继续订阅下一个可观察对象的数据。

    参数:

    多个可观察对象用 ‘,’分割,或者传入可观察对象数组

    返回结果:

    可观察对象

    示例:

    1 const ob1=of(1,2,3,4); 
    2 const ob2=from([5,6,7,8]);
    3 concat(ob2,ob1).subscribe(num=>{
    4    console.log(num);
    5 });

    上述代码中,定义两个可观察对象,通过 concat将两个可观察对象合并成一个可观察对象,并订阅该可观察对象,可以看到订阅结果按照合并顺序,依次发送出来数据,发送数据分别是:5,6,7,8,1,2,3,4。上述代码是同步完成的,下面介绍异步可观察对象合并相关知识。

    // 定义 Observable promiseA 
    const promiseA = from(this.http.get(this.urls[0]));
    
    // 定义 Observable promiseB
    const promiseB = from(this.http.get(this.urls[1]));
    
    // 订阅 promiseA (异步)
    promiseA.subscribe(result => {
          setTimeout(()=>{
            console.log('start promiseA');
            console.log(result);
            console.log('end promiseA');
          },1000)
        })
    
    // 订阅 promiseB(同步)
    promiseB.subscribe(result => {
          console.log('start promiseB');
          console.log(result);
          console.log('end promiseB');
        });

    上述代码中,定义了两个  Observable ,当订阅他们的时候,先订阅的是 promiseA,但是因为 promiseA 中含有异步方法,所以返回B的订阅结果,再返回A的订阅结果,程序运行结果是:

    start promiseB
    result
    end promiseB
    start promiseA
    result
    end promiseA
    现在利用 concat进行代码合并
    1   concat(promiseA,promiseB).subscribe(x=>{
    2       console.log(x);
    3     })

    上述代码先返回  promiseA的订阅结果数据,再返回 promiseB的订阅结果数据,如果 promiseA 的数据没有完全返回过来,不会订阅 promiseB 中的数据

     
  • 相关阅读:
    第二次冲刺spring会议(第一次会议)
    团队项目(4.15站立会议)
    团队项目(4.14站立会议)
    VB中的GDI编程-1 设备环境DC
    合并多个表格数据的代码
    随机跳转页面之使用VBA公共变量
    快速找到Office应用程序安装路径
    CSS3学习笔记(3)-CSS3边框
    CSS3学习笔记(2)-CSS盒子模型
    测试一下js是否可用
  • 原文地址:https://www.cnblogs.com/wyjblog/p/15561266.html
Copyright © 2020-2023  润新知