У меня есть метод, который должен вызывать асинхронный метод c, который использует Observable и должен возвращать значение. Это значение получено при вызове метода asyn c.
У меня есть два способа решения этой проблемы:
Способ 1: использование обещания
methodThatUseAPromise(){
const promise:Promise<...>= new Promise((resolve, reject) =>
{
service.someObservableMethod(...).subscribe(
data => resolve(data),
error => reject(error))
});
return promise;
}
Затем этот метод называется:
methodThatuseAPromise().then(....)
Способ 2: Использование субъекта
methodThatUseASubject() {
subject:Subject<...>= new Subject();
service.someObservableMethod(...).subscribe(
data => subject.next(data),
error => subject.error(error))
return subject;
}
Затем этот метод называется:
methodThatUseASubject().subscribe(....)
Каков наилучший способ сделать это?
Спасибо.