JS 中的异步处理
________________________________________________________________________________
异步处理的意思是非同步处理,不是按照固定顺序按部就班的处理,简言之代码段不再是一行一行的执行,而是执行到相应函数会跳转到相应函数开始执行。
ES2015新增了Promise对象专用于异步处理
Promise对象是使用then和catch两个方法来操作的,then方法用来执行下一步,catch方法用于执行失败(或拒绝后的处理)
Promise实例对象的创建需要一个executor参数,他是一个函数,要处理的业务就放在这个函数里,executor内部可以使用resolve和reject方法来设置业务完成和拒绝,这两个方法是作为参数自动传入的整个创建过程如下:
var executor=function(resolve,reject){
resolve();
reject();
}
var promise=new Promise(executor(resolve,reject));
创建完成之后就可以调用then和catch方法来处理。
catch用来执行拒绝之后的处理,当Promise的executor中调用reject之后,会依次在then 和catch方法中查找处理拒绝的函数(术语叫做onRejected回调函数,then中的第一个参数是处理调用成功的函数onFulfilled回调函数),查找最近的一个来处理。