Promise基础
2021/9/10 23:08:01
本文主要是介绍Promise基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Promise基本使用
Promise是JavaScript执行异步操作的执行方案
Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
promise的一般执行步骤如下:
-
promise构造函数接收两个回调函数,分别为resolve和reject,表示请求成功和请求失败
注意:一定要在promise构造函数中执行上述两个回调函数,否则then方法将不会执行
-
在promise中定义异步执行任务,然后分别定义请求成功时与失败时所执行的方法
-
使用then执行请求成功时的任务,使用catch执行请求失败时的任务
例如:
const tNum = 2; new Promise((resolve, reject) => { setTimeout(() => { console.log('hello world'); if (tNum == 2) { resolve('hi you'); } else { reject('error'); } }, 1000); }).then((message) => { console.log(message); }).catch((message) => { console.log(message); });
resolve和reject都可以传递参数,在then和catch中定义的函数默认参数就来自resolve和reject
promise补充
一个 Promise必然处于以下几种状态之一:
- 待定(pending): 初始状态,既没有被兑现,也没有被拒绝。
- 已兑现(fulfilled): 意味着操作成功完成。
- 已拒绝(rejected): 意味着操作失败。
实质上, then和catch的返回值又是一个新的promise,因此可以链式使用
但在链式使用promise时,如果其中一个then回调的函数无法执行进入reject时,那么接下来的then不会再执行,这也说明了其链式的原则。如果有catch,则直接跳到最后的catch,否则停止执行
例如:
const tNum = 2; new Promise((resolve, reject) => { setTimeout(() => { console.log('hello world'); if (tNum == 2) { resolve('hi you'); } else { reject('error'); } }, 1000); }).then(() => { console.log('message'); }).then(() => { console.log('message2'); return new Promise((resolve, reject) => { reject('most error!'); }) }).then(() => { console.log('message3'); }).catch((message) => { console.log(message); })
实际上,将每个then和catch看作一个promise就会好理解许多
这篇关于Promise基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)