Можно ли на angular/typescript сделать функцию, которая могла бы возвращать Promise если у неё было вызвано .then либо Observable, при подписке?

Можно ли сделать универсальную функцию, которая бы возвращала промис, если на ней запускают .then() либо же Observable, если на неё подпишутся или такое не делают, а лучше не заморачиваться и написать 2 разных функции?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twolegs
Можно написать функцию, которая всегда возвращает Observable. Если необходимо получить промис - просто оборачиваете вызов функции в `firstValueFrom` или `lastValueFrom` из rxjs.

То, что вы изначально написали, можно решить расширенным Observable, что-то вроде (псевдокод)
class ObservableWithThen extends Observable {
  then(cb) {
    return firstValueFrom(this).then(cb);
  }
}


И в функции вместо обычного Observable создавать и возвращать ObservableWithThen
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы