Ajax-Promise

109 阅读1分钟

Promise

1、概念

Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,它可以获取异步操作的消息

2、优点

① 可以避免多层异步调用嵌套问题(回调函数)

② Promise 对象提供了简洁的API,使得控制异步操作更加容易

3、基本用法

实例化Promise对象,构造函数中传递函数,该函数中用于处理异步任务

new Promise(function(resolve, reject){ })

resolve和reject两个参数用于处理成功和失败两种情况

4、基本逻辑

如果想让Promise成功执行下去,需要执行resolve,如果让它失败执行下去,需要执行reject

resolve进then,reject进catch

var p = new Promise(function(resolve,reject){
	// 这里用于实现异步任务
	// 成功时调用resolve()
	// 失败时调用reject()
});
p.then(
   function (data) {
       // 从resolve得到正常结果
       console.log(data);
})
 .catch( 
   function (info) {
     // 从reject得到错误信息
     console.log(info);
})

5、终止执行链

如果想终止在某个执行链的位置,可以用Promise.reject(new Error())

new Promise(function(resolve, reject) {
    resolve(1)
}).then(result => {
    return result + 1
}).then(result => {
    return result + 1
}).then(result => {
	// 终止掉程序,不再进入下一个then而是进入catch
  return  Promise.reject(new Error(result + '失败'))
   // return result + 1
}).then(result => {
    return result + 1
}).catch(error => {	
    alert(error)
})

6.三种状态

  • pending 待定 初始状态
  • fulfilled 已兑现 当resolve执行后的状态
  • rejected 已拒绝 当reject执行后的状态

注意:状态一旦改变不可再次修改,不可逆