Я хотел бы предоставить rxjs Subject
из службы Angular, чтобы иметь возможность передавать значения (через next
), вызывая методы службы.Одно из значений, которые я хочу выдать, является результатом вызова Angular HttpClient
get
.Я просто не могу понять это правильно.Мне интересно, почему в обработчике подписки не вызываются следующие результаты:
-View
export default abstract class TileView implements OnInit {
constructor (private configService : ConfigService) {}
ngOnInit () {
this.configService.fetch(this.type()).subscribe( res => {
console.log(res)
});
}
}
-Service
export class ConfigService {
public subject = new AsyncSubject();
constructor (private http : HttpClient) {}
fetch (type) {
this.http.get(
api.host + api.base + interpolate(api.config, { type }) + "/"
).subscribe( res => {
this.subject.next(res);
});
return this.subject;
}
}
Есть ли способ вернутьсубъект, а также запустить вызов HTTP с помощью одного вызова метода?Это странно, потому что тема возвращается, подписчик зарегистрирован, вызов http завершается и вызывается this.subject.next(res)
, но обработчик подписки даже не запускается.