Прочитав много об Observables после того, как они пришли из большого приложения, основанного на Promise, я понимаю их силу в использовании потоков / шаблонов событий, однако я чувствую, что бывают случаи, когда Observables чувствует себя неуклюже и излишне.
Когда вы хотите получить некоторые данные, особенно для страничных данных, Observable идеально подходит.Вы можете подключить начальный размер и смещение для пейджинга, а обновления страницы и размера инициируют обновление наблюдаемой, и она выбирает больше данных, преобразует их и т. Д.
Однако, когда мы что-то делаемпросто как запрос DELETE на /api/books/123
, и нет никакого ценного ответа, неудобно использовать Observables, поскольку нечего «наблюдать», и вы должны «инициировать» запрос, который будет сделан, подписавшись на него.
Вот пример:
Обещание
await myService.DeleteBook('123');
// the book is now deleted
Наблюдаемый
myService.DeleteBook('123')
// the book is still there as the request isn't sent yet
.subscribe(x => {
// finally in here the book is deleted, but 'x'
// is pretty much worthless so this method pretty much does nothing.
});
Итакна ум приходит несколько вещей:
- Мне очень неудобно подписываться на запрос DELETE
- Это дополнительный код, практически бесполезный
- Мне нравится, как я могу контролироватьблокирую ли я Обещание простым добавлением / удалением
await
из строки
Все блоггеры и статьи, которые я вижу вокруг Observables, похоже, все время сосредоточены на использовании Observables и никогда не используют Promises.
Этот парень , казалось, был единственным человеком, который "встал" перед Observables и пытался спорить, почему их следует использовать только тогда, когда они имеют смысл, но все комментариилюди просто избивают его и говорят, что Наблюдаемые - все еще серебряная пуля.
Может ли кто-нибудь объяснить мне, почему существует такая решительная позиция по поводу использования Наблюдаемых во всех случаях прямо?