Vue学习笔记

从console.log()看浏览器的异步问题

2018-09-11  本文已影响1人  fred_33c7

今天写了一段代码,其实就是3行

let rawData = JSON.parse(response.data)
console.log(rawData)
let data = this.splitData(rawData);

输出的数据是


图1

可是我这里获得的data应该是6个才对啊。
于是我把最后一行注释了。

let rawData = JSON.parse(response.data)
console.log(rawData)
//let data = this.splitData(rawData);

结果变成

图2
这是正确的。
为什么我在 console.log()后面的代码会影响前面的代码呢?
因为这是浏览器的异步特性。
console.log()并不是javascript真正的一部分,而是由其开发环境(主要是浏览器)决定的。在许多程序(不只是JavaScript)中,I/O 是非常低速的阻塞部分。所以,(从页面/UI 的角度来说)浏览器在后台异步处理控制台I/O 能够提高性能。
所以有时候会先执行console.log()之后的语句,再来执行console.log() ,必须要小心这个问题,要不然会造成相当大的困扰。
上一篇下一篇

猜你喜欢

热点阅读