文章目录
promise是什么
宏观来说:
promise是JS中进行异步编程的新的解决方案
具体表达:
从语法来说:promise是一个构造函数
从功能来说:promise对象用来封装一个异步操作并可以获取其结果
promise的状态改变
pending --> resolved (成功)
pending --> rejected (失败)
- 只有2种状态,而且一个promise对象只能改变一次
- 无论变为成功还是失败,都会有结果数据
- 成功数据一般称为value,失败的结果数据一般称为reason
流程
基本使用
//1、创建一个新的promise对象
const p = new Promise((resolve, reject) => {
//2、执行异步任务
setTimeout(() => {
const time = Date.Now()
//3.1.如果成功了,调用resolve(value)
if (time % 2 == 0) {
resolve('成功的数据:time=' + time)
} else {
//3.2.如果失败了,调用reject(reason)
reject('失败的数据:time=' + time)
}
}, 1000)
})
p.then(
value => {
console.log('成功的回调', value);
},
reason => {
console.log('失败的回调', reason);
}
)
为什么要使用promise
1、指定回调函数的方式更加灵活
旧的(纯回调函数):必须在启动异步任务前指定
promise:启动异步任务 => 返回promise对象 => 给promise对象绑定回调函数(甚至可以再异步任务结束之后再指定)
回调地狱缺点:不便于阅读 而且 不便于异常处理
终极解决方案:async/await
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。