promise

Promise的优缺点:
优点:Promise 的写法是回调函数的改进,使用then方法以后,异步任务的两段执行看得更清楚了。then将原来异步函数的嵌套关系转变为链式步骤

缺点:Promise 的最大问题是代码冗余,原来的任务被Promise 包装了一下,不管什么操作,一眼看去都是一堆 then,原来的语义变得很不清楚。


Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,
原型上有then、catch等同样很眼熟的方法

Promise.prototype.then=function(){

}
Promise.prototype.catch=function(){

}

new Promise()
Promise对象代表一个异步操作,有三种状态:
pending(进行中)、resolved(已完成)
pending(进行中) 和Rejected(已失败)。

一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变为Resolved;从Pending变为Rejected。

var p = new Promise(function(resolve, reject){
//做一些异步操作
setTimeout(function(){
console.log('执行完成');
resolve('随便什么数据');
}, 2000);
});

Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。


function runAsync(){
var p = new Promise(function(resolve, reject){
//做一些异步操作
setTimeout(function(){
console.log('执行完成');
resolve('随便什么数据');
}, 2000);
});
return p;
}
runAsync();

posted @ 2018-06-30 11:24  maps..xy  阅读(86)  评论(0编辑  收藏  举报