Попытка вернуть Observable из вызова субъекта Websocket rxjs6. Трудно понять асинхронную природу подписки. Код также фильтруется в возвращенном конверте для извлечения Product [].
Я понимаю, что звонить через веб-сокет, когда подписчик получает результат и маршруты для новой угловой страницы.
getAllProducts() : Observable<Product[]> {
let document: GetAllDocument = new GetAllDocument().init();
let envelope =
new AuctionEnvelope().init(AuctionMethods.getAll,document);
this.ws.subject.next(envelope); // call server
let result__: Product[] = [];
this.ws.subject.asObservable().subscribe( (resp: AuctionEnvelope) => {
pipe(
filter((resp)=>resp.method===AuctionMethods.getAllResponse,
map((resp:AuctionEnvelope) =>resp.getAllResponseDocument.result),
map((products: Product[]) => this.result__ = products)
);
}
);
return from(this.result__);
}
Я хотел бы вернуть результат асинхронным способом, чтобы приложение могло получить результат, когда оно будет готово с помощью Observable.