簡體   English   中英

在 Observable 中使用 Promise

[英]Using Promise inside a Observable

由於在 Observable 中,我們可以選擇調用 Promise ,因此我對此進行了澄清。

由於承諾在聲明后立即執行,是否會在不附加 Subscribe 方法的情況下執行? 而且既然它不能被取消,為什么有人會想到在 observable 中調用 Promise 。

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!');
});

正如您所說,當您創建 Promise 時,會執行 Promises 主體。 所以當你創建這個 Promise 時:

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

無論您接下來做什么,都會執行 http 請求。 使用from (或fromPromise )將 Promise 轉換為 Observable 並訂閱此 Observable 不會以任何方式影響 Promise 及其執行。

如果您希望能夠使用 Observables 提供的所有運算符,或者因為您的應用程序在某些點使用並需要 Observables,您可能希望將 Promise 轉換為 Observable。

如果您只想在訂閱 Observable 時創建和執行 Promise,您可以使用defer ,請在此處查看我的答案: Convert Promise to Observable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM