这段代码应该可以将 'isShaking' 赋值为 false。可能的原因是 'isShaking' 的作用域不正确,或者在代码的其他地方对 'isShaking' 进行了修改。

建议检查一下 'isShaking' 的作用域和其他相关代码。

常见原因:

  1. 变量作用域错误: 如果 'isShaking' 是在 Promise 内部声明的局部变量,那么它在 Promise 执行完毕后就无法访问了。
  2. 其他代码修改: 可能在代码的其他地方存在修改 'isShaking' 的逻辑,导致它在 Promise 执行完毕后仍然没有被赋值为 false。

解决方案:

  1. 将 'isShaking' 声明为全局变量或函数作用域内的变量。
  2. 仔细检查代码中其他部分是否存在对 'isShaking' 的修改。

示例:

let isShaking = false; // 将 'isShaking' 声明为全局变量

const p = new Promise((resolve, reject) => {
  isShaking = true;
  resolve();
});

p.then(res => {
  console.log('1');
  isShaking = false;
});

注意:

在使用异步编程时,要特别注意变量的作用域和代码逻辑,避免出现类似的问题。

JavaScript Promise 代码中无法将 isShaking 赋值为 false 的原因分析

原文地址: https://www.cveoy.top/t/topic/m1hK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录