Javascript 在可观察的范围内使用承诺

Javascript 在可观察的范围内使用承诺,javascript,promise,rxjs,observable,Javascript,Promise,Rxjs,Observable,因为在一个可观察的系统中,我们有一个称之为承诺的选项,我对此有一个重新定义的澄清 既然承诺在声明后立即执行,那么它是否会在不附加Subscribe方法的情况下执行呢? 而且既然它不能被取消,为什么有人会想到在一个可观测系统中调用一个承诺呢 Rx.Observable.fromPromise(): const computeFutureValue = new Promise((resolve, reject) => { //make http api call }); Rx.Observ

因为在一个可观察的系统中,我们有一个称之为承诺的选项,我对此有一个重新定义的澄清

既然承诺在声明后立即执行,那么它是否会在不附加Subscribe方法的情况下执行呢? 而且既然它不能被取消,为什么有人会想到在一个可观测系统中调用一个承诺呢

Rx.Observable.fromPromise():

const computeFutureValue = new Promise((resolve, reject) => {
//make http api call
});

Rx.Observable.fromPromise(computeFutureValue)
.subscribe(
val => {
console.log(val);
},
err => {
console.log(`Error occurred: ${err}`);
},
() => {
console.log('All done!');
});

正如您所说,当您创建承诺时,将执行承诺体。 因此,当您创建此承诺时:

const computeFutureValue=新PromiseSolve,拒绝=>{ //进行http api调用 }; 不管接下来做什么,http请求都会执行。使用from或fromPromise将承诺转换为一个可观察对象,并订阅该可观察对象不会以任何方式影响承诺及其执行

如果您希望能够与所有运营商Observable一起工作,或者因为您的应用程序在某些点上与Observable一起工作并需要Observable,那么您可能希望将承诺转换为Observable

如果您只想在订阅您可以使用的可观察对象时创建和执行承诺,请参见我的回答: