then方法接收几个回调函数?
时间: 2024-01-01 11:50:06 浏览: 25
`then` 方法接收一个或两个回调函数。第一个回调函数处理 Promise 对象的成功状态,第二个回调函数处理 Promise 对象的失败状态。第二个回调函数是可选的,如果不传递,则会自动传递错误到下一个 `catch` 方法中。例如:
```javascript
promise.then(onFulfilled, onRejected);
```
其中,`onFulfilled` 是成功状态的回调函数,`onRejected` 是失败状态的回调函数。
相关问题
Promise有哪几种方法?
Promise有以下几种方法:
1. `Promise.all(iterable)`:接收一个可迭代对象(比如数组)作为参数,返回一个新的Promise对象。当可迭代对象中的所有Promise都成功时,返回的Promise对象才会被解析为一个包含所有Promise结果的数组;如果可迭代对象中的任意一个Promise失败,则返回的Promise对象会被拒绝,并且会将第一个失败的Promise的错误信息作为拒绝的原因。
2. `Promise.race(iterable)`:接收一个可迭代对象作为参数,返回一个新的Promise对象。当可迭代对象中的任意一个Promise解决或拒绝时,返回的Promise对象也会解决或拒绝,并且会将第一个解决或拒绝的Promise的结果作为返回的Promise对象的结果。
3. `Promise.resolve(value)`:返回一个以给定值解析的Promise对象。如果传入的值是一个Promise对象,则直接返回该Promise对象;如果传入的值是一个thenable对象(即具有then方法的对象),则会将其转换为一个Promise对象并解析;否则,返回一个以该值解析的Promise对象。
4. `Promise.reject(reason)`:返回一个以给定原因拒绝的Promise对象。
5. `Promise.prototype.then(onFulfilled, onRejected)`:为Promise对象添加解决和拒绝时的回调函数。`onFulfilled`是当Promise解决时调用的函数,接收解决的值作为参数;`onRejected`是当Promise拒绝时调用的函数,接收拒绝的原因作为参数。`then`方法返回一个新的Promise对象,可以通过链式调用多个`then`方法。
6. `Promise.prototype.catch(onRejected)`:为Promise对象添加拒绝时的回调函数。`onRejected`是当Promise拒绝时调用的函数,接收拒绝的原因作为参数。`catch`方法返回一个新的Promise对象,可以通过链式调用多个`catch`方法。
promise的方法有什么
Promise 的方法有以下几种:
1. then():用于注册 Promise 对象状态改变时的回调函数,接收两个参数,分别是 Promise 对象状态变为 resolved 时的回调函数和状态变为 rejected 时的回调函数。
2. catch():用于注册 Promise 对象状态变为 rejected 时的回调函数,接收一个参数,即状态变为 rejected 时的回调函数。
3. finally():用于注册 Promise 对象状态变化时的回调函数,无论状态变为 resolved 还是 rejected 都会执行,接收一个参数,即状态变化时的回调函数。
4. all():用于将多个 Promise 对象包装成一个新的 Promise 对象,当所有 Promise 对象都变为 resolved 时,新的 Promise 对象的状态才会变为 resolved,否则状态变为 rejected。
5. race():用于将多个 Promise 对象包装成一个新的 Promise 对象,当其中任意一个 Promise 对象变为 resolved 或 rejected 时,新的 Promise 对象的状态就会变为相应的状态。
6. resolve():用于将一个值或一个 Promise 对象转换成一个 Promise 对象,如果参数是一个 Promise 对象,则直接返回该对象,否则返回一个新的 Promise 对象,状态为 resolved。
7. reject():用于将一个值或一个 Promise 对象转换成一个 Promise 对象,状态为 rejected。