Где наблюдаемый объект хранится в памяти в браузере? - PullRequest
0 голосов
/ 09 января 2019

Когда мы создаем наблюдаемый объект, он сохраняется в куче?

Является ли это объектом-оберткой вокруг источника данных, либо объектом массива, либо отдельным значением, либо событиями (оборачивает источник в объект и сохраняет его в памяти) как ресурс в памяти?

Отправляет ли он (наблюдаемый объект) сигнал в операционную систему, прерывает команду для выполнения определенного действия в соответствии с полученными данными и помещает функцию обратного вызова в стек выполнения после цикла текущего события?

/// EDITED /// Объекты, которые можно наблюдать (которые создает библиотека Rxjs)

1 Ответ

0 голосов
/ 09 января 2019

Наблюдаемые объекты, как и весь пользовательский JavaScript-объект, хранятся в куче.

Это обертка вокруг источника, в терминах памяти, так же, как вы можете обернуть объект в другой объект:

let object = { somekey: 'somevalue' };
let wrapper = { object: object }; // We just "wrapped" object

В ответ на ваш вопрос о времени, операционной системе и возможных прерываниях: Нет. Наблюдаемые объекты все еще находятся внутри javascript, поэтому работайте с параллелизмом javascript. Они никак не выходят из цикла событий.

Observables - это, в основном, абстракция вокруг слушателей событий. Вы можете сделать наблюдаемое из таких событий, как document.addEventListener('scroll', () => {}). Когда вы создаете наблюдаемое, которое использует это событие в качестве источника, оно будет вызвано, как только будет вызван прослушиватель событий, для Observables нет особой или магической синхронизации.

...