promise的用法归纳总结
Promise是JavaScript中的一个重要概念,它是一种用于异步编程的解决方案。在JavaScript中,很多操作都是异步的,例如网络请求、文件读写等等。而使用Promise可以更好地处理这些异步操作,避免了回调函数嵌套过多、代码难以维护等问题。本文将对Promise的用法进行归纳总结。
一、Promise的基本概念
1.1 Promise的定义
pending
Promise是JavaScript中一种异步编程解决方案,它提供了一种统一的接口来处理异步操作。
1.2 Promise的特点
(1)状态不受外界影响:Promise有三种状态(Pending、Fulfilled、Rejected),只有异步操作结果可以改变状态。
(2)一旦状态改变就不会再变:Promise状态一旦改变就永久保持该状态,不会再次改变。
(3)支持链式调用:Promise可以通过then方法实现链式调用,使得代码更加简洁清晰。
二、创建Promise对象
2.1 Promise构造函数
创建一个Promise对象需要使用Promise构造函数,并传入一个执行器函数作为参数。
```
let promise = new Promise((resolve, reject) => {
    // 执行异步操作
});
```
执行器函数接受两个参数:resolve和reject。当异步操作成功时,调用resolve方法;当异步操作失败时,调用reject方法。
2.solve和ject
solve方法可以将一个值转换为一个已经成功的Promise对象,而ject方法可以将一个值转换为一个已经失败的Promise对象。
```
let promise1 = solve(1);
let promise2 = ject(new Error('出错了'));
```
三、Promise的状态和结果
3.1 Promise状态
Promise有三种状态:Pending(进行中)、Fulfilled(已成功)和Rejected(已失败)。
3.2 Promise结果
当Promise状态为Fulfilled时,会调用then方法中的第一个回调函数;当状态为Rejected时,会调用then方法中的第二个回调函数。而如果在执行器函数中抛出异常,则会直接进入Rejected状态,并且抛出异常信息。
四、Promise的then方法
4.1 then方法基本用法
then方法是Promise对象实例的原型方法,它接受两个参数:onFulfilled和onRejected。当异步操作成功时,会调用onFulfilled回调函数;当异步操作失败时,会调用onRejected回调函数。
```
promise.then(onFulfilled, onRejected);
```
4.2 then方法链式调用
由于then方法返回的是一个新的Promise对象,因此可以使用链式调用来处理多个异步操作。
```
promise
    .then(result => {
        // 处理result
        return result + 1;
    })
    .then(result => {
        // 处理result
        return result * 2;
    })
    .then(result => {
        // 处理result
    });
```
在上述代码中,每次调用then方法都会返回一个新的Promise对象,因此可以在每个then方法中继续处理异步操作。
4.3 then方法的返回值
then方法返回一个新的Promise对象,该对象的状态和值根据回调函数的执行结果而定。
(1)如果回调函数返回一个值,则新Promise对象的状态为Fulfilled,并且将该值作为新Promise对象的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。