promise面试题及答案
时间: 2023-07-30 19:06:18 浏览: 237
面试题和答案
这是一个比较广泛的话题,因此我会列出一些常见的 Promise 面试题及其答案:
1. 什么是 Promise?
答:Promise 是一种解决 JavaScript 异步编程的方案,它可以避免回调地狱的问题,并使异步代码看起来更像同步代码。
2. Promise 有几种状态?
答:Promise 有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。
3. Promise 的特点是什么?
答:Promise 的特点包括:
- Promise 对象只有三种状态,且状态一旦改变就不会再变。
- Promise 对象可以链式调用,使代码更加简洁。
- Promise 可以在异步操作完成后,将结果传递给其他代码。
4. 如何创建一个 Promise?
答:可以使用 Promise 的构造函数来创建一个 Promise:
```
const promise = new Promise((resolve, reject) => {
// 异步操作
// 如果操作成功,调用 resolve 函数
// 如果操作失败,调用 reject 函数
});
```
5. 如何使用 Promise 处理异步操作?
答:在 Promise 中,可以使用 then 方法来处理异步操作的结果,或使用 catch 方法来处理异步操作的错误:
```
promise
.then(result => {
// 处理异步操作成功的结果
})
.catch(error => {
// 处理异步操作失败的错误
});
```
6. Promise.resolve 和 Promise.reject 有什么作用?
答:Promise.resolve 可以将一个普通的值或一个 Promise 对象转换为一个已经成功的 Promise 对象;Promise.reject 可以将一个错误对象转换为一个已经失败的 Promise 对象。
7. Promise.all 和 Promise.race 的区别是什么?
答:Promise.all 可以将多个 Promise 对象并行执行,并在所有 Promise 对象都成功时返回一个包含所有结果的数组,如果其中一个 Promise 对象失败,则返回一个失败状态的 Promise 对象;Promise.race 可以将多个 Promise 对象并行执行,并在其中任意一个 Promise 对象成功或失败时返回对应的结果或错误。
以上是一些常见的 Promise 面试题及答案,希望对你有所帮助。
阅读全文