var b = null;
setTimeout(function() {
b = 1;
}, 1000);
console.log(b); //null```
这种写法纯属是习惯问题,但往往忽视了异步和同步的执行顺序。要知道在JS中同步函数的执行永远比异步要快,也就是说console.log(b)先于setTimeout的callback执行,最后输出的当然是null。
这种同步和异步问题主要出现在请求后的callback中,可能如果真要赋值全局变量,并对赋值后的全局变量进行操作,建议都都写在请求后的callback中,可以封装成函数形式。
关于回调函数中的变量赋值问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- topics: 1.The Node.js philosophy 2.The reactor pattern 3....
- https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...