使用 Promise 的 resolve() 返回值,并在 then() 块中操作变量。
例如:
let value = '';
function someAsyncFunction() {
return new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
resolve('some value');
}, 1000);
});
}
someAsyncFunction().then((result) => {
value = result;
console.log(value); // some value
});
console.log(value); // ''
在此示例中,我们定义了一个名为 value 的变量,并在 someAsyncFunction() 中使用 Promise 将异步操作的结果通过 resolve() 返回。在 then() 块中,我们将结果保存在 value 变量中,并在控制台上输出它。在 Promise 外部第二个控制台日志中,我们发现 value 仍为空,这是因为 Promise 尚未完成,变量没有被相应地更新。