[英]How to get resolved data from a Promise
考慮以下代碼片段:
let primise = new Promise((resolve, reject) => {
resolve({ x: 10 });
});
setTimeout(() => {
// At some moment in the future (Promise is resolved)
console.log(promise);
}, 200);
現在,用{ x: 10 }
解決了諾言。 如何使用已解決的Promise訪問此數據?
檢查promise對象,我可以看到數據作為promise._v
可用,但這看起來不正確。 任何幫助,將不勝感激
諾言的全部目的是,您不必等待任何時間來確定諾言是否得以解決……您只需將其鈎住即可。
let promise = new Promise((resolve, reject) => {
resolve({ x: 10 });
});
...
promise.then(data => {
// use data here...
});
不,您不能檢查承諾(至少不是本機承諾,某些Userland實現確實有可用的同步檢查方法)。
因此-與往常一樣-使用promise.then(v => console.log(v))
。 只有這樣,您才能確保兌現諾言。
如果您還想等待200ms,請對超時和Promise.all
使用另一個諾言來等待它們兩個:
let promise = Promise.resolve({ x: 10 });
Promise.all([promise, new Promise(resolve => setTimeout(resolve, 200))]).then([v] => {
// At some moment in the future (and promise is fulfilled)
console.log(v); // {x: 10}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.