作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑以下代码片段:
let primise = new Promise((resolve, reject) => {
resolve({ x: 10 });
});
setTimeout(() => {
// At some moment in the future (Promise is resolved)
console.log(promise);
}, 200);
现在, promise 已通过 { x: 10 }
解决。如何使用 resolved promise 访问这些数据?
检查 promise 对象,我可以看到数据作为 promise._v
可用,但这看起来不对。任何帮助将不胜感激
最佳答案
不,您不能检查 promises(至少不能检查原生 promises,一些用户空间实现确实有可用的同步检查方法)。
所以 - 一如既往 - 使用 promise.then(v => console.log(v))
。只有这样,您才能确定 promise 已兑现。
如果您还想等待 200 毫秒,请为超时使用另一个 promise ,并使用 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}
});
关于javascript - 如何从 Promise 中获取已解析的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36107422/
我是一名优秀的程序员,十分优秀!