Promise是什么及常见用法

1.promise是什么,有什么用?

Promise来源于ES6,是一个构造函数,可以构造promise对象,用于实现异步操作。

2.promise的状态特点

promise异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败),状态可从 pending 变为 fulfilled 和从 pending 变为 rejected。只要处于 fulfilled 和 rejected ,状态就不会再变了(已定型)。

3.promise基本用法:

小栗子:

promise构造函数接收两个函数作为参数,分别是resolvereject

异步操作成功,resolve用来触发then方法里面的代码,此时promise对象状态从pending变为fulfilled;

异步操作失败,reject用来触发catch方法中的代码,此时promise对象状态从pending变为rejected;

4.promise的常用方法(暂时说明then、catch、finally、all方法)

实例对象promise,原型上有方法then(promise执行resolve函数,状态为fulfilled时调用)、catch(promise执行reject函数,状态为rejected时调用)、finally(不管啥状态都调用)

then、catch、finally小栗子:

promise.all(Array/String),用于将多个 Promise 实例,包装成一个新的 Promise 实例. 它的状态由其参数中的promise中的状态决定:

1.当传入的全部实例中的状态都fulfilled时,其生成的实例的状态会fulfilled,且传入promise实例的结果组成的数组,会作为当前新实例的回调参数返回。小栗子:

2.当参数中实例中有一个被rejected,promise的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。

3.若传入的的参数中有不是promise实例的,会调用Prmoise.resolve()将其转换成Promise。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容