一、异步
JS的异步:一个同步任务队列,一个异步任务队列,同步任务队列中执行非耗时操作,异步任务中执行耗时操作,任务的执行是从上到下的,如果中间出现网络请求耗时操作,并不会等待请求结果返回再继续执行,而是讲耗时操作挂起,直接进行下一个任务。
这样会出现接口未返回结果,而页面已经渲染的情况,如果想要保证数据返回之后再去渲染页面,需要根据需求决定使用Promise语法,或者async,await处理。
JS异步其实并不是真的异步,某种意义上讲还是同步。因为异步任务在同步任务执行结束后才去执行,不同于JAVA的异步,是真正主线程和子线程同时异步执行的。
看下setTimeout这种情况
setTimeout(function () { document.getElementById("demo").innerHTML="我可是异步!"; }, 3000);
第二个参数:时间,代表在耗时任务等待执行的时间;