JavaScript的学习设计案例(www.starpool.cn)

51 阅读1分钟

那么问题来了,什么样的任务是异步任务?那么JavaScript引擎是如何知道异步任务返回结果了?

异步任务,可以简单理解为耗时任务,**星池科技**例如网络请求、IO操作(文件读写)、浏览器获取地理位置等等都是异步任务。除此之外,像定时器(timer)执行的定时任务,在执行时也会被添加到任务队列中,定时任务主要由 Promise对象为异步操作提供了统一的接口,它实际上起到了代理(proxy)作用,即充当异步操作和回调函数之间的中介。

Promise对象通过自身的状态来控制异步操作,Promise实例具有3种状态:执行程序后控制台输出结果如下:显然,优先执行了同步任务f2,但此时jsonObj还没有被读取,因此返回一个undefined,然后才执行异步任务f1,最终也输出了文件对象。www.starpool.cn