马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Promise和async/await提供异步并发本领,是尺度的JS异步语法。异步代码会被挂起并在之后继承实行,同一时间只有一段代码实行,实用于 单次I/O使命 的场景开辟,比方一次网络哀求、一次文件读写等操纵。
异步语法是一种编程语言的特性,允许步调在实行某些操纵时不必等候其完成,而是可以继承实行其他操纵。
Promise
Promise是一种用于处理处罚异步操纵的对象,可以将异步操纵转换为类似于同步操纵的风格,以方便代码编写和维护。Promise提供了一个状态机制来管理异步操纵的差别阶段,并提供了一些方法来注册回调函数以处理处罚异步操纵的乐成或失败的结果。
Promise有三种状态:pending(举行中)、fulfilled(已完成)和rejected(已拒绝)。Promise对象创建后处于pending状态,并在异步操纵完成后转换为fulfilled或rejected状态。
最根本的用法是通过构造函数实例化一个Promise对象,同时传入一个带有两个参数的函数,通常称为executor函数。executor函数汲取两个参数:resolve和reject,分别表现异步操纵乐成和失败时的回调函数。比方,以下代码创建了一个Promise对象并模仿了一个异步操纵:
- const promise: Promise<number> = new Promise((resolve: Function, reject: Function) => {
- setTimeout(() => {
- const randomNumber: number = Math.random();
- if (randomNumber > 0.5) {
- resolve(randomNumber);
- } else {
- reject(new Error('Random number is too small'));
- }
- }, 1000);
- })
复制代码 上述代码中,setTimeout函数模仿了一个异步操纵,并在1秒钟后随机天生一个数字。如果随机数大于0.5,则实行r
|