---
url: /docs/guide/usage/linter/rules/promise/no-multiple-resolved.md
---

### 它的作用

此规则会警告 Promise 构造函数的执行器函数中存在多次 resolve 的路径。

### 为什么这很糟糕？

多次 resolve/reject 调用：

* 违反 Promise/A+ 规范
* 对 Promise 的行为没有任何影响
* 使代码意图不清晰
* 可能表明实现中存在逻辑错误

### 示例

以下是此规则的**错误**代码示例：

```javascript
new Promise((resolve, reject) => {
  fn((error, value) => {
    if (error) {
      reject(error);
    }

    resolve(value); // `reject` 和 `resolve` 都可能被调用。
  });
});
```

以下是此规则的**正确**代码示例：

```javascript
new Promise((resolve, reject) => {
  fn((error, value) => {
    if (error) {
      reject(error);
    } else {
      resolve(value);
    }
  });
});
```

## How to Use

## 版本

此规则于 v1.19.0 中添加。

## 参考资料
