gpt4 book ai didi

javascript - 服务无法正常工作时可观察到的主题

转载 作者:行者123 更新时间:2023-11-28 03:30:57 24 4
gpt4 key购买 nike

我有一个组件 A,它向服务方法发送一个值(通过调用它),然后我尝试创建一个主题并从组件 B 中“观察”它,从而触发对组件 B 的操作成分A。这就是我所做的:

组件 A 发送数据:

this.service.method(id_estado)

由服务收到:

import { Injectable } from '@angular/core';
import { BehaviorSubject, of, Observable, Subscription, Subject } from 'rxjs';
export class service {
estado: any;
subject = new Subject<any>();
constructor( private api: ApiService ) {
}
service ( id_estado ){
let subject = new Subject<any>();
this.subject.next(estado)
}
}

在组件 B 中,我尝试像这样观察它:

this.service.subject.subscribe( (data) => {
console.log(data);
});

组件 B 的部分发生在方法内部。这是问题的原因吗?我无法在我的 console.log 上显示任何数据

最佳答案

let subject = new Subject<any>();
this.subject.next(estado)

- 应移至构造函数进行初始化。

或者只是在构造函数中执行服务:

import { Injectable } from '@angular/core';
import { BehaviorSubject, of, Observable, Subscription, Subject } from 'rxjs';
export class service {
estado: any;
subject = new Subject<any>();
constructor( private api: ApiService ) {
service(true); // or some value you need.
}
service (id_estado){
this.subject.next(estado);
}
}

在这种情况下,您可以删除初始化 subject = new Subject<any>();在构造函数之前。

就你而言,你刚刚得到 Subject ,但是.next()没有被执行。

关于javascript - 服务无法正常工作时可观察到的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com