【ES6】Promise的使用

2 篇文章 0 订阅

1.Promise概念

promise是异步操作中的重要处理方式,它是一个构造函数,它的参数接收一个带有resolve和reject为参数的函数。promise有三种状态,分别是pending(等待)、resolve(成功)、reject(失败)。

2.Promise使用

function p() {
  return new Promise( (resolve, reject) => {
    resolve("成功");
  })
}

首先写一个函数p,函数里返回了promise的一个新实例,promise里传递了resolve函数,并传递了‘成功’的值。

console.log(p());    // Promise { '成功' }

执行p函数,返回了一个带有‘成功’的promise

解析promise的值有两种方式

p().then( res => {
  console.log(res);    // 成功
}, err => {
  console.log(err);  
})
p().then( res => {
  console.log(res);    // 成功
}).catch( err => {
  console.log(err);  
})

以上代码的作用是相同的,通常我们使用第二种方式,这种方式更为清晰明了,promise.then()方法里接收两个参数,可以理解成一个是处理成功的回调函数,一个是处理失败的回调函数,回调函数的参数就是所传递过来的值。

console.log(
  p().then( res => {
    console.log(res);  
  }).catch( err => {
    console.log(err);  
  })
);
输出
Promise { <pending> }
成功

这里因为promise是异步操作,所以会延迟执行,先执行最外层的console.log(),打印出一个正在等待状态的promise,在打印出resolve的值。

3.使用Promise.resolve()和Promise.reject()

使用promise.resolve()和promise.reject()可以直接创建出其状态的promise,修改p函数

function p() {
  return Promise.resolve("成功")
}
p().then( res => {
  console.log(res);    // 成功
}).catch( err => {
  console.log(err);  
})

我们直接可以打印出p函数传递过来的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值