Как браузеры обрабатывают наблюдаемое внутри? - PullRequest
0 голосов
/ 23 декабря 2018

Promise - это API-интерфейс, предоставляемый браузером для выполнения трудоемкого времени в асинхронном режиме. После завершения цикла обработки событий выполняется функция в обещании.observables внутренне реализован, чтобы вести себя асинхронно?

1 Ответ

0 голосов
/ 24 декабря 2018

Наблюдаемые не являются асинхронными по своей природе - они просто основаны на толчке.Например:

console.log(1);
Observable.of(1).subscribe(() => console.log(2));
console.log(3);

Будет регистрировать 1,2,3, а не 1,3,2, например:

console.log(1);
Promise.resolve(1).then(() => console.log(2)); // then is `async`
console.log(3);

С другой стороны, наблюдаемые могут использовать планировщик, который использует источник асинхронности изСам браузер - как setTimeout.Вы можете настроить планировщик Rx, передав другой параметр в функции Rx (например, from(10, Rx.scheduler.asap)).

Хотя библиотеки обещаний существовали до собственных обещаний.В этот момент они использовали setTimeout, каналы сообщений, наблюдателей мутаций или другие хаки, чтобы получить источник асинхронности.

...