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);
});