如何从Promise中获取已解析的数据

时间:2016-03-19 21:31:34

标签: javascript 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._v但这看起来不正确。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

承诺的全部意义在于,您无需等待任意时间来确定承诺是否已解决......您只需将其挂钩即可。

let promise = new Promise((resolve, reject) => {
    resolve({ x: 10 });
});

...

promise.then(data => {
    // use data here...
});

答案 1 :(得分:1)

不,您无法检查承诺(至少不是本机承诺,某些用户态实现确实有可用的同步检查方法)。

所以 - 一如既往 - 使用 grade subid 0 K 123 1 3rd 123 2 6th 123 3 1st 456 4 3rd 456 5 5th 456 [6 rows x 2 columns] grade subid 0 K 123 1 3rd 123 2 6th 123 3 1st 456 4 4th 456 5 5th 456 [6 rows x 2 columns] 。只有这样,你才能确保履行承诺。

如果您还想等待200毫秒,请使用另一个承诺进行超时,并promise.then(v => console.log(v))等待它们:

Promise.all