Javascript 为什么承诺的呈现速度比可观察的慢?即使可观察的是懒惰的,而承诺不是
与承诺一样,可观测数据也遵循推送模型。然而,可观察对象是懒惰的,因为他们需要一些订户来获取数据Javascript 为什么承诺的呈现速度比可观察的慢?即使可观察的是懒惰的,而承诺不是,javascript,node.js,promise,observable,Javascript,Node.js,Promise,Observable,与承诺一样,可观测数据也遵循推送模型。然而,可观察对象是懒惰的,因为他们需要一些订户来获取数据 let Rx = require('rxjs'); let isTrue = true; let promise = new Promise((resolve, reject) => { if (isTrue) { resolve('Hi Promise') } else { reject(new Error('Message error in
let Rx = require('rxjs');
let isTrue = true;
let promise = new Promise((resolve, reject) => {
if (isTrue) {
resolve('Hi Promise')
} else {
reject(new Error('Message error in promise'))
}
})
let data$ = new Rx.Observable((observer) => {
if (isTrue) {
observer.next('Hi Observable');
} else {
observer.error(new Error('error observer'))
}
})
// DATA Collector
console.log(promise, data$)
//Promise { 'Hi Promise' } Observable { _isScalar: false, _subscribe: [Function] }
promise.then((data) => {
console.log(data). //Hi Promise
}).catch((err) => {
console.log(err)
})
data$.subscribe((data) => {
console.log(data); // output - ‘Hi Observable’
});
输出
Promise { 'Hi Promise' } Observable { _isScalar: false, _subscribe: [Function] }
Hi Observable
Hi Promise
在承诺的情况下,它们立即执行,并且数据可用。然而,除非订阅,否则无法获得可观测数据
还是先打印可观察部分,然后打印承诺部分?如中所述:
订阅可观察对象类似于调用函数。
有些人声称可观测的是异步的。事实并非如此
因此,您需要以异步方式传递消息:
setTimeout(()=>{
观察者。下一步(“高可观察”);
})
否则,所有消息都将同步
此外,这与标准中指出的行为相同:
订阅可观察对象类似于调用函数。
有些人声称可观测的是异步的。事实并非如此
因此,您需要以异步方式传递消息:
setTimeout(()=>{
观察者。下一步(“高可观察”);
})
否则,所有消息都将同步
此外,这与标准行为相同