Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Promise - это объект, который представляет собой возможный успех или неудачу асинхронной операции. А также его возвращаемое значение.
Вы когда-нибудь замечали, как компьютерное программирование заимствует многие термины из обычного языка?
В данном случае мы используем слово promise, которое в обычном английском языке означает заявление о том, что что-то будет или не будет сделано, согласно словарю.
Когда мы говорим об обещании в JavaScript, мы говорим об асинхронной операции, которая была обещана. Это означает, что обещание JavaScript - это обещанная операция, которая имеет различные состояния, такие как...
JavaScript Promise является основой асинхронного программирования в JavaScript. Он позволяет нам ставить асинхронные задачи в очередь в виде Promise и выполнять другие действия, пока мы ждем выполнения обещания.
Согласно документации RxJS, Observable - это...
Проявление потребителя. Тип, который может иметь некоторые (или все) обработчики для каждого типа уведомлений: next, error и complete. Наличие всех трех типов обработчиков обычно позволяет назвать его "наблюдателем", а если в нем отсутствует какой-либо из обработчиков уведомлений, его можно назвать "частичным наблюдателем".
Observable - это слушатель, который подписывается на эмиттер события и срабатывает каждый раз, когда происходит новое событие.
Другими словами, Observable наблюдает за всем, что вы ему укажете, а затем срабатывает при выполнении определенного условия.
Как в этом примере - мы наблюдаем за нажатием определенной кнопки и затем выводим журнал в консоль.
var button = document.querySelector('button');
Rx.Observable.fromEvent(button, 'click').subscribe(() => console.info('Button clicked'));
Promise предназначены для событий, которые происходят один раз. Observable предназначены для обработки событий, которые происходят несколько раз (или вообще не происходят) с течением времени.
И, конечно, Observable имеет множество других возможностей, которых нет у Promise, например, операторы трансформации и фильтрации и т.д.
Если у вас есть одно асинхронное событие, которое нужно наблюдать, используйте Promise. Если у вас есть несколько событий в будущем, которые могут произойти или не произойти, используйте Observable.
Observables помогают в обеспечении параллелизма, а также в обработке событий, поступающих от таких вещей, как щелчки мыши или события таймера. Обещания обрабатывают одно событие за раз, что означает, что они лучше подходят для ситуаций, когда вы хотите убедиться, что что-то произойдет только один раз.
Promise хороши для разовых событий, а Observables - для потоков данных.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.