如何將Promise then中 取值並返回

時間 2021-06-03 15:55:05

1樓:寒夜天

的確, promise物件似乎無法取出裡面的值.

promise的鏈式呼叫, 表明它返回的依然是乙個promise物件.

即使用 async 來包裝, async函式本身返回的就是乙個promise物件, 依然沒用.

似乎繞來繞去, value值永遠在promise物件的肚子裡, 出不來

2樓:田古祿

@Sakura丶這位答主基本上覆蓋了所有知識點。

您可能對於 Promise.prototype.then 有什麼誤會。

Promise#then 的第乙個引數指定的函式是在 Promise 的狀態變為 fulfilled(resolved) 之後執行的。如果想通過 getVKey 方法將非同步獲取的 vkey 返回給呼叫方,則直接返回 getSongVkey().then() 產生的 Promise 即可。

呼叫方通過

getVKey

(songId

).then

(vkey

=>將後續流程寫在 .then 中,當乙個執行流程中任何一項引數/資料是非同步獲取的時候,整個流程都需要按照非同步形式寫,除非使用 ES7 的 async/await 。

ECMAScript 6入門

ECMAScript 6入門

3樓:Sakura丶

當然無法在當前獲得未來的值。一步非同步,處處非同步。 想處理vkey,應該返回乙個Promise,然後在then的執行體中處理。或者async/await 。

promise then 中 return Promise resolve 後,發生了什麼?

這完全無所謂,你本身就不應該依賴這種不可明確的先後順序,這東西完全取決於JS的引擎。這些事情中唯一能確定的就只有 4 一定在 0 後面,只有這才是需要關心的。 貘吃饃香 路過 擼了下規範,等擼懂了,掃聽下各種答案發現 李杭帆 已經答挺好了 這裡就簡化下描述吧 實際從規範來說,是 Promise Re...

如何將vector int iterator轉換成int ?

cqwrteur C 20有std to address 同時還可以用 if constexpr std contiguous iterator 判斷 建議呼叫演算法全部用指標 從前有座山 stl可以理解為對一套介面的定義,是一套標準,stl原始碼剖析,只是使用了其中一種比較容易閱讀的實現來進行講解...

如何將空氣中不同的氣體分離?

LionLi 能不能使用高速離心機?氫的分子量是2,氕氘氚H D T的分子量2 4 6,氮的分子量是28,CO也為28,但有微小區別,UF6都可以分離的。 懶羊羊 簡言之,通過低溫加壓精餾進行分離。如何獲得低溫?目前的空氣分離裝置都是使用膨脹機進行等熵膨脹製冷而獲得低溫的。空分行業屬於深冷,與空調等...