Promise是ES6新增加的一个对象,作用是在执行异步方法的时候对返回的结果进行处理,其基本语法是:
var promise = new Promise(function(resolve, reject) {
// 异步处理
//resolve 成功调用
//reject 失败调用
});
通过new可以直接创建一个Promise对象,function有两个参数,resolve表示当函数体执行成功后进行调用,reject可以当函数体执行失败后进行调用。定义好的Peomise对象可以通过then方法传递resolve和reject这两个参数,这两个参数最好都是函数的形式。如下面这段代码:
promise.then(res=>{
console.log(res);
},err=>{
console.log(err);
})
这里调用promise的then方法后会执行这个promise对象的函数体里面的方法,如果函数体内没有调用resolve和reject方法,那么then方法里面的两个参数都不会被执行。
如果说promise对象的返回结果中出现错误的话除了在reject中进行处理以外还可以在Promise.catch()中进行处理。catch()中放的是一个函数,当Promise执行中有错误的时候会catch会捕获该异常并进行处理。
对于多个Promise对象可以合成一个进行统一处理,只要使用Promise.all()即可。