Задать вопрос

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

Можно ли сделать универсальную функцию, которая бы возвращала промис, если на ней запускают .then() либо же Observable, если на неё подпишутся или такое не делают, а лучше не заморачиваться и написать 2 разных функции?
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Javascript.ru
    Курс по Angular
    6 недель
    Далее
  • Skillfactory
    Профессия Frontend-разработчик PRO
    14 месяцев
    Далее
  • Компьютерная академия «TOP»
    Frontend разработка
    12 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@twolegs
Можно написать функцию, которая всегда возвращает Observable. Если необходимо получить промис - просто оборачиваете вызов функции в `firstValueFrom` или `lastValueFrom` из rxjs.

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


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

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

Похожие вопросы