Javascript 如何从Promise中获取解析数据
考虑以下代码段:Javascript 如何从Promise中获取解析数据,javascript,promise,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对象
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.\u v
,但这看起来不正确。任何帮助都将不胜感激承诺的全部意义在于,您不必等待任意时间来确定承诺是否得到解决。。。你只要把它钩进去就行了
let promise = new Promise((resolve, reject) => {
resolve({ x: 10 });
});
...
promise.then(data => {
// use data here...
});
不,您不能检查承诺(至少不是本机承诺,一些用户地实现确实有可用的同步检查方法) 所以-一如既往-使用
promise.then(v=>console.log(v))
。只有这样,你才能确保诺言得到履行
如果您还想等待200毫秒,请使用另一个超时承诺和承诺。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}
});
一如既往:promise.then(console.log)
。