Angular 角度rxjs主题和订阅不工作
在我的服务中,我创建了一个可观察的组件,我将在另一个组件中使用它Angular 角度rxjs主题和订阅不工作,angular,Angular,在我的服务中,我创建了一个可观察的组件,我将在另一个组件中使用它 import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; import { Router } from '@angular/router'; import { HttpClient, HttpErrorResponse } from '@angular/common/http'; @Injectable() expor
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { Router } from '@angular/router';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
@Injectable()
export class ApiHandlerService {
modalObject = new Subject<any>();
constructor(
private router: Router,
private http: HttpClient,
) {}
responseHandler(response) {
if (response.success) {
const obj = {
exception: false,
payload: response.payload
};
this.modalObject.next(obj);
return obj;
} else {
const obj = {
exception: true,
message: response.exception.message,
segNum: response.exception.seqNum
};
this.modalObject.next(obj);
return obj;
}
}
errorHandler(err) {
if (err instanceof HttpErrorResponse) {
if (err.status === 401) {
this.router.navigate(['/app-login']);
}
}
}
}
所以您可以看到,当我订阅时,我只是在此时尝试console.log订阅值。这似乎不起作用,而且我对可观察事物有点太陌生了,不知道出了什么问题
ngOnInit() {
this.allSpecies = this.birdService.getAllSpeciesFromFirebase();
this.specieSub = this.allSpecies.subscribe(data => console.log(data));
}
这里,“所有物种”是一个可观察的物种,specieSub是一个订阅。根据服务返回数据的方式,数据将被记录为数组或包装对象
既然主体是可观察的超类,它也应该起作用。。无论如何,尝试降级以观察自身,并查看所有代码是否工作正常
发布生成的任何更新或日志可能是由于以下原因造成的: 1.您必须在提供者中添加服务
@Component({
selector: 'app-api-handler-modal',
templateUrl: './api-handler-modal.component.html',
providers:[ApiHandlerService]
})
是否有任何原因导致服务的
响应处理器功能启动?除非有什么东西使Subject.next()
运行,否则不会发生太多事情。我的所有组件都使用http.get/pull调用响应处理程序。我知道这部分正在工作,否则我将无法在组件模板中获得有效负载,我就是。1。尝试使用视图中服务返回的值,这将确保从“current component”@SandraWillford正确调用服务。您是否能够解决此问题?或者查询的任何更新?@Nitin我不得不暂停此操作,因此没有任何新的进展
@Component({
selector: 'app-api-handler-modal',
templateUrl: './api-handler-modal.component.html',
providers:[ApiHandlerService]
})