简单一点的理解:一改之前多个异步时需要采用层层回调函数的方法,可以使用链式调用来进行操作。
我们可以通过console.dir(Promise)来直接打印出来这个对象来看看。
这么一看就明白了,Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有then、catch等同样很眼熟的方法。这么说用Promise new出来的对象肯定就有then、catch方法喽,没错。
下面是一个简单的用法:
var promise = new Promise(function func(resolve, reject){
// do somthing, maybe async
if (success){
return resolve(data);
} else {
return reject(data);
}
});
promise.then(function(data){
// do something... e.g
console.log(data);
}, function(err){
// deal the err.
})