请考虑以下代码段:
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
但这看起来不正确。任何帮助将不胜感激
答案 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