跳至内容

promise/no-callback-in-promise 正确性

它的作用

禁止在 Promise.prototype.then()Promise.prototype.catch() 中调用回调函数 (cb())。

这为什么不好?

直接在 then()catch() 方法中调用回调函数会导致出乎意料的行为,例如多次调用该回调函数。此外,以这种方式混合回调函数和 Promise 范例会让代码变得混乱并且更难以维护。

示例

此规则的不正确代码示例

js
function callback(err, data) {
  console.log("Callback got called with:", err, data);
  throw new Error("My error");
}

Promise.resolve()
  .then(() => callback(null, "data"))
  .catch((err) => callback(err.message, null));

此规则的正确代码示例

js
Promise.resolve()
  .then((data) => {
    console.log(data);
  })
  .catch((err) => {
    console.error(err);
  });

引用

根据 MIT 许可证发布。