我们把一段时间内,程序要执行的任务分为两部分: 1.执行部分(现在执行的),2.等待部分(剩下的将来要执行的).而我们面临的问题是,当现在执行部分执行完后,程序并不是严格地立马去完成等待部分.换句话就是...例如:
//ajax是某些JavaScript框架(如:jQurey)中实现Ajax的函数let data = ajax( "http://some.url.1" );
//控制台输出data内容console.log...(data)
如果运行这段JavaScript代码会发现,打印出来的data通常没有我们想要的ajax请求结果....这是因为,Ajax请求并不是同步(synchronously,相对于异步asynchronously)完成的,当执行console.log()的时候,我们想要的data还没有返回.我们想要的其实是ajax...注意:我们是可以同步地请求Ajax的,比如:jQurey中的ajax()将async: false加入设置.但是这样做的后果就是浏览器的UI操作(按钮,滚动等)以及用户交互等都会被阻塞等待锁死.我们应该避免这种情况