Это правило линтера решает проблему с несогласованностью в возврате функций, обычно оно указывает либо на ошибку, либо на запах кода.
Если filterBooks
является синхронным, он должен либо последовательно возвращать результат, либо предоставлять побочные эффекты (изменить books
) без возврата. Если filterBooks
асинхронный, он не может вернуть результат синхронно.
callback
- обратный вызов в стиле Node-style-first-error. Они обычно используются в асинхронном коде, и асинхронная функция не может возвращать значение из асинхронно вызванного обратного вызова.
filterBooks
представляется синхронным, поэтому использование обратных вызовов неоправданно.
Если в настоящее время используется как:
filterBooks(..., (err, result) => {
if (err)
console.error(err);
else
console.log(result);
});
Может быть переработан для использования как:
try {
const result = filterBooks(...);
console.log(result);
} catch (err) {
console.error(err);
}
Так же могут использоваться другие функции, такие как filterBooksByContext
.