• ngx通讯之可观察对象实现


    1.公共服务

    //test.service.ts
    
    import {Injectable} from '@angular/core';
    import {Subject} from 'rxjs/Subject';
    
    @Injectable()
    export class TestService{
      missionAnnouncedSource = new Subject();
      missionAnnounced$:any = this.missionAnnouncedSource.asObservable();
      announceMission(misson:any){
        this.missionAnnouncedSource.next(mission)
      }
    } 

    2.信息发出者

    //test.component.ts  (发送可观察对象)
    import {TestService} from './test.service';
    
    export class TestComponent implements OnInit {
      constructor(private ts: TestService) { }
      
      ngOnInit(){
        this.test();
      }
      
      test(){  //发送信息
        this.ts.announceMission("hello,it is just a test file")
      }
    }

    3.信息接收者

    //test2.component.ts  (接收可观察对象)
    import {TestService} from './test.service';
    import {Subscription} from 'rxjs/Subscription';
    
    export class Test2Component implements OnInit,OnDestory {
      subscription:Subscription;
      message:any;
      constructor(private ts: TestService) { 
          this.subscription = ts.missionAnnounced$.subscribe(
            mission => {
              this.message = mission  //接收信息
            }
        )
      }
      
      ngOnInit(){
       
      }
      
      ngOnDestory(){ //取消订阅
        this.subscription.unsubscribe();
      }
    }
  • 相关阅读:
    事务使用测试结论
    Enum枚举2
    Enum枚举
    sqlserver数据库存取图片
    sqlserver数据库操作公共类DBOperate
    SqlParamsTool
    sqlserver数据库 -- SqlParameter使用
    sqlserver 数据库连接状态判断
    水晶报表2
    防止系统页面被加载进 iframe 子窗口
  • 原文地址:https://www.cnblogs.com/sghy/p/8334857.html
Copyright © 2020-2023  润新知