跳至内容

unicorn/no-single-promise-in-promise-methods 正确性

默认开启此规则。
🛠️ 可针对该规则的某些违规情况自动修复。

功能

禁止将单元素数组传递给 Promise 方法

为什么这样做是不好的?

将单元素数组传递给 Promise.all()Promise.any()Promise.race() 可能是一个错误。

示例

该规则禁止以下代码

javascript
async function bad() {
  const foo = await Promise.all([promise]);
  const foo = await Promise.any([promise]);
  const foo = await Promise.race([promise]);
  const promise = Promise.all([nonPromise]);
}

该规则允许以下代码

javascript
async function good() {
  const foo = await promise;
  const promise = Promise.resolve(nonPromise);
  const foo = await Promise.all(promises);
  const foo = await Promise.any([promise, anotherPromise]);
  const [{ value: foo, reason: error }] = await Promise.allSettled([promise]);
}

参考

采用 MIT 许可证发布。