二.什么是Promise
2024-09-07 20:44:31
二.什么是Promise
1.理解
抽象表达:
Promise 是JS 中进行异步编程的新的解决方案
具体表达:
从语法上来说:Promise 是一个构造函数
从功能上来说:promise对象用来封装一个异步操作并可以获取其结果
2.promise 的状态改变
- pending 变为 resolved
- pending 变为 rejected
说明: 只有这2种,且一个promise对象只能改变一次
无论变为成功还是失败,都会有一个结果数据
成功的结果数据一般称为vlaue,失败的结果数据一般称为reason
3.promise的基本流程
4.promise的基本使用
//语法
// new Promise( function(resolve, reject) {...} /* executor */ );
//参数
/*
executor是带有 resolve 和 reject 两个参数的函数 。Promise构造函数执行时立即调用executor 函数,
resolve 和 reject 两个函数作为参数传递给executor(executor 函数在Promise构造函数返回所建promise实例对象前被调用)。
resolve 和 reject 函数被调用时,分别将promise的状态改为fulfilled(完成)或rejected(失败)。
executor 内部通常会执行一些异步操作,一旦异步操作执行完毕(可能成功/失败),要么调用resolve函数来将promise状态改成fulfilled,
要么调用reject 函数将promise的状态改为rejected。如果在executor函数中抛出一个错误,
那么该promise 状态为rejected。executor函数的返回值被忽略。
*/
// 1. 创建一个新的promise对象
const p = new Promise((resolve, reject) => {// 执行器函数
// 2.执行异步操作任务
setTimeout(()=> {
const time = Date.now()// 如果当前时间是偶数就代表成功,否则代表失败
// 3.1. 如果成功了,调用resolve(value)
if(time %2 == e){
resolve('成功的数据,time=' + time)
) else {
//3.2.如果失败了,调用reject(reason)
reject('失败的数据,time='+ time)
),1000);
});
p.then(
value => { //接收得到成功的value数据 onResolved
console.log('成功的回调', value)
},
reason => {// 接收得到失败的reason数据 onRejected
console.log('失败的回调', reason)
}
)
最新文章
- android app反编译
- 解决 SVN Skipped 'xxx' -- Node remains in conflict
- maven 跳过测试 打包 及上传命令
- IOS第二天多线程-02一次性代码
- [C++] 井字棋游戏源码
- 关于netbeans中的JComboBox(复选框)
- Codeforces Round #263 (Div. 2)
- 关于删除7z历史解压路径
- ArrayList和LinkedList源码
- Java----list常用方法汇总
- Redis 设计与实现 (六)--发布订阅
- MTK USER版本禁止log输出
- 从composer上在本地创建一个项目
- 将DOS格式的shell脚本转为UNIX格式
- httpclient新旧版本分割点4.3
- Spring-data-JPA详细介绍
- canvas 使用 isPointInPath() 判断鼠标位置是否在绘制的元素上
- IIS中“绑定”,“IP地址全部未分配”到底是个什么玩意
- Total Commander如何设置自定义快捷键在当前目录打开ConEmu
- 百度乐播音乐真实地址查找api接口
热门文章
- jqGride的基本使用
- nginx负载轮询
- P4424-[HNOI/AHOI2018]寻宝游戏【结论】
- WPF进阶技巧和实战06-控件模板
- T-SQL——数据透视和逆透视
- 在昨天夜黑风高的晚上,我偷了隔壁老王的Python入门课件,由浅入深堪称完美!
- java多线程--wait和sleep
- Python - __all__ 变量
- caffe运行错误 target_blobs.blobs_size()与 source_layer.blobs_size() 不一致
- 干货分享之Spring框架源码解析01-(xml配置解析)