【发布时间】:2019-05-31 15:51:48
【问题描述】:
对此感到困惑,当然有一种优雅的方法可以做到这一点,但不确定是什么。
我想要类似的东西:
let x = 5;
const p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, 2000);
}).then(() => {
console.log(x);
});
x = 3;
// Print out 5 after 2 seconds.
基本上,给定与上述类似的设置,有没有办法打印出'5',而不管x 的值是否在异步超时期间更改?在我的情况下,很难在 resolve() 中简单地传递 x。
【问题讨论】:
-
您可以通过不依赖全局状态来避免此类问题。
标签: javascript asynchronous promise closures