Все мы знаем, что существует множество способов обработки асинхронных операций в Javascript. И обещания, и наблюдаемые - это две абстракции, которые упускают возможность столкнуться с тем, что мы все знаем как «ад обратных вызовов». Сегодня я хочу отточить, почему я предпочитаю наблюдаемый подход RxJS при обработке асинхронного поведения.

В отличие от обещаний, наблюдаемые могут принимать несколько событий одновременно и использовать один и тот же API в каждом случае события. Observables также имеют то преимущество, что их можно отменить. Если результат HTTP-запроса к серверу или какой-либо другой дорогостоящей асинхронной операции больше не нужен, наблюдаемый может отказаться от подписки на хранилище, в отличие от обещаний, которые должны быть либо успешными, либо неудачными, прежде чем ваше приложение сможет продолжить работу.

Еще одно преимущество наблюдаемых объектов состоит в том, что они имеют встроенные операторы, такие как map, forEach, reduce и многие другие методы, доступные реактивным программистам. Это предлагает более четкий и краткий код, особенно при работе в команде.

Некоторые из нас в Team Soup на самом деле находятся в процессе повышения эффективности RxJS и его применения для управления состоянием в приложениях React. Он называется OMNISTREAM и был вдохновлен после того, как устал от необходимости включать в наши приложения промежуточное ПО, такое как redux-thunk и redux-saga. Если вас интересует Redux и вы ищете другой подход к реализациям flux, загляните к нам на npm! https://npmjs.com/package/soup-js