promise是什么与使用方法?

Promise的作用: 

new Promise((resolve,reject) => { resolve(); reject(); })

异步微任务,解决了异步多层嵌套回调的问题(解决地狱回调),让代码的可读性更高,更容易维护

Promise使用:

Promise是ES6提供的一个构造函数,可以使用Promise构造函数new一个实例,

Promise构造函数接收一个函数作为参数,这个函数有两个参数,分别是两个函数 `resolve`和`reject`,`resolve`将Promise的状态由等待变为成功,将异步操作的结果作为参数传递过去;`reject`则将状态由等待转变为失败,在异步操作失败时调用,将异步操作报出的错误作为参数传递过去。

实例创建完成后,可以使用`then`方法分别指定成功或失败的回调函数,也可以使用catch捕获失败,then和catch最终返回的也是一个Promise,所以可以链式调用。

Promise的特点:

1.一旦状态改变,就不会再变,任何时候都可以得到这个结果。

 2.resolve 方法的参数是then中回调函数的参数,reject 方法中的参数是catch中的参数

3. Promise不仅能够捕获错误,而且也很好地解决了回调地狱的问题,缺点是无法取消 Promise,错误需要通过回调函数捕获

Promise的其他方法:

Promise.resolve() :返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。 Promise.reject():返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法。

Promise.all():返回一个新的promise对象,该promise对象在参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败。

Promise.any():接收一个Promise对象的集合,当其中的一个 promise 成功,就返回那个成功的promise的值。

Promise.race():当参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Promise.all()方法JavaScript中的一个方法,它接收一个Promise对象的数组作为参数,返回一个新的Promise对象。这个新的Promise对象在数组中所有的Promise对象都成功解析(resolved)时才会被解析,否则只要有一个Promise对象被拒绝(rejected),新的Promise对象就会被拒绝。 使用Promise.all()方法可以方便地处理多个异步操作,并在它们都完成后执行相应的操作。当需要同时发起多个异步请求,并在所有请求都完成后进行下一步操作时,Promise.all()方法非常有用。 下面是一个使用Promise.all()方法的示例: ```javascript const promise1 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 1 resolved'); }, 2000); }); const promise2 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 2 resolved'); }, 3000); }); const promise3 = new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise 3 resolved'); }, 1000); }); Promise.all([promise1, promise2, promise3]) .then((results) => { console.log(results); // 所有Promise对象都成功解析时输出结果: // ['Promise 1 resolved', 'Promise 2 resolved', 'Promise 3 resolved'] }) .catch((error) => { console.log(error); // 如果有任何一个Promise对象被拒绝时输出错误信息 }); ``` 在上面的示例中,我们创建了三个Promise对象,分别模拟了三个异步操作。通过Promise.all()方法将这三个Promise对象传入,并使用.then()方法来处理所有Promise对象都成功解析时的结果。如果有任何一个Promise对象被拒绝,我们可以使用.catch()方法来处理错误。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值