Я хочу создать функцию, которая создает и возвращает Observable
. В зависимости от параметров, которые получает эта функция, она должна либо создать Observable
и вернуть его напрямую, либо (в особом случае) вызвать другую асинхронную функцию перед возвратом Observable
.
Абстрактный пример:
async function doSomethingAsync(){
return 'success';
}
function returnObservable(specialCase: boolean): Observable<any>
const observable = new Observable(
observer =>
observer.next(1)
}
);
if(specialCase) {
doSomethingAsync().then(
then => {
// this does not work, of course, but that's what I would like to be able to do
return observable;
}
)
} else {
return observable;
}
}
Теперь моя проблема в том, что, по-видимому, я не могу вызвать асинхронную функцию и затем вернуть Observable
. Я мог бы сделать всю эту returnObservable
функцию асинхронной и просто await
doSomethingAsync
, но тогда функция returnObservable
вернула бы Promise
, возвращая Observable
- и это не то, что я хочу. Потребитель этой функции должен получить Observable напрямую.
Я надеюсь, что смогу прояснить мою проблему. Есть ли способ решить эту проблему?