async/await剖析
JavaScript
是单线程的,为了避免同步阻塞可能会带来的一些负面影响,引入了异步非阻塞机制,而对于异步执行的解决方案从最早的回调函数,到ES6
的Promise
对象以及Generator
函数,每次都有所改进,但是却又美中不足,他们都有额外的复杂性,都需要理解抽象的底层运行机制,直到在ES7
中引入了async/await
,他可以简化使用多个Promise
时的同步行为,在编程的时候甚至都不需要关心这个操作是否为异步操作。
分析
首先使用async/await
执行一组异步操作,并不需要回调嵌套也不需要写多个then
方法,在使用上甚至觉得这本身就是一个同步操作,当然在正式使用上应该将await
语句放置于 try...catch
代码块中,因为await
命令后面的Promise
对象,运行结果可能是rejected
。
function promise(){