Promise
1.用链式调用的方法,执行回掉函数
2.避免了回掉函数的层层嵌套
Promise对象的三种状态
1.pending 进行中
2.rejected 失败
3.resolved 已解决
Promise状态的改变形式
1.从pending到resolved
2.从pending到rejected
Promise基本的api
打印Promise,console.dir(Promise) 可以看到
1.Promise.resolve()
2.Promise.reject()
3.Promise..prototype.then()
4.Promise.prototype.catch()
5.Promise.all() 所有完成
6.Promise.race() 一个完成
Promise是一个构造函数,本身具有 resolve reject all race几个方法,原型上有then catch等方法
eg.1
var p = new Promise(function(resolve, reject){
window.setTimeout(function(){
console.log('Just a test‘);
resolve('哈哈’);
}, 2000);
});
1.Promise的构造函数接受一个参数,该参数是一个函数,并传入两个参数,resolve和reject
2.上面new了一个Promise对象,但是并没有调用它,传进去的函数就执行了
3.所以,使用Promise的时候,一般放进一个函数中,当使用的时候再调用
eg2.
function runAsync(){
var p = new Promise(function(resolve, reject){
window.setTimeout(function(){
console.log('Just a test');
resolve('哈哈');
}, 2000);
});
return p;
}
runAsync().then(function(data){
console.log(data);
});
runAsync()方法返回一个Promise对象,然后调用该对象上的then等方法