Вот описание правила @typescript-eslint/promise-function-async
:
Требует, чтобы любая функция или метод, возвращающий Promise, были помечены как asyn c.
С примером для неверный код:
const arrowFunctionReturnsPromise = () => Promise.resolve('value');
function functionReturnsPromise() {
return Promise.resolve('value');
}
и правильный код:
const arrowFunctionReturnsPromise = async () => Promise.resolve('value');
async function functionReturnsPromise() {
return Promise.resolve('value');
}
Ваш код не работает первым строка примера. В частности, проблема здесь:
const sendPromises = this.state.queue.map((message) =>
this.sendAsync(message)
);
Вы вызываете .map()
с помощью стрелочной функции, которая производит обещание, поэтому, согласно правилу, вы должны пометить его как async
вот так:
const sendPromises = this.state.queue.map(async (message) =>
// ^^^^^
this.sendAsync(message)
);