promise总结

使用promise进行编程有哪些好处?

将复杂的异步处理轻松地进行模式化
代码更清晰
异常处理更方便
代码链式操作

1. 构建promise对象
Pormise本质就是一个构造器
Promise类似于 XMLHttpRequest ,从构造函数 Promise 来创建一个新建新 promise 对 象作为接口。
要想创建一个promise对象、可以使用 new 来调用 Promise 的构造器来进行实例化。如下:

var promise = new Promise(function(resolve, reject) { 
// 异步处理
// 处理结束后、调用resolve 或 reject
});

promise的链式调用
/每一次执行.then都会返回一个新的promise,初始状态是pending
三个状态
padding
fulfilled
rejected
如何改变状态,在执行器中有两个参数,一个是resolve,一个是reject

resolve   本质也是一个函数    resolve()   padding ----> fulfilled
reject   本质也是一个函数    reject()   padding ----> rejected

返回的新的promise也可以.then,这样就一直可以.then下去,这叫then链机制

/*let p1 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        resolve("ok")
    },2000)
})
let p2 = p1.then(result=>{
    console.log(result)
},reason=>{
    console.log(reason)
})
let p3 = p2.then();
let p4 = p3.then()
console.log(p2)*/
/*let p1 = new Promise((resolve,reject)=>{
    setTimeout(()=>{
        resolve("包包")
    },2000)
})
let p2 = p1.then(result=>{ // 如果p1.then中的某个方法返回了一个新的promise,p2是成功还是失败要看这个新的promise状态
    console.log(result); // 包包
    return Promise.reject("没钱"); // 新的promise是失败状态  意味着p2是失败状态
},reason=>{
    console.log(reason);
})
p2.then((result)=>{
    console.log(result)
},(reason)=>{
    console.log("----"+reason); // 没钱
})*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值