Он готов к событию, когда DOM (объектная модель документа) загружена.
Поскольку это событие происходит после того, как документ готов, это хорошее место для всех других событий и функций jQuery. Как и в примере выше.
Метод ready () указывает, что происходит, когда происходит событие готовности.
Совет. Метод ready () не должен использоваться вместе с.
потому что вы меня заинтриговали. я создал такое же тестирование, которое выглядит следующим образом:
console.time('observable');
for(let i = 0; i < 10000; i++) {
let user$ = of({
name: 'yanis-git'
});
user$.subscribe(user => {
// do something. Prefer not console.log because is ressource consuming.
});
}
console.timeEnd('observable');
console.time('promise');
for(let i = 0; i < 10000; i++) {
new Promise((resolve) => {
resolve({
name: 'promise'
});
}).then(user => {
// do something. Prefer not console.log because is ressource consuming.
});
}
console.timeEnd('promise');
и результат выглядит так (может отличаться в вашем браузере / настройке, но пропорция должна быть одинаковой:
observable: 34.060791015625ms
promise: 103.4609375ms
Другая реализация с асинхронной чертой внутри:
console.time('observable');
for(let i = 0; i < 10000; i++) {
let user$ = Observable.create((o) => {
setTimeout(() => {
o.next({
name: 'observable'
});
});
});
user$.subscribe(user => {
// do something. Prefer not console.log because is ressource consuming.
});
}
console.timeEnd('observable');
console.time('promise');
for(let i = 0; i < 10000; i++) {
new Promise((resolve) => {
setTimeout(() => resolve({
name: 'promise'
}))
}).then(user => {
// do something. Prefer not console.log because is ressource consuming.
});
}
console.timeEnd('promise');
Результат близок, но раса побеждает благодаря наблюдаемой.
observable: 160.162353515625ms
promise: 213.40625ms
если вы хотите проверить стек, пожалуйста, используйте реальную консоль браузера, чтобы увидеть вывод таймера