Вы можете смело игнорировать предупреждение:)
То, что ESLint предназначен для ловли таких вещей:
let value = 0;
async function race() {
value += await Promise.resolve(1);
console.log(value);
}
race(); race();
В этом случае race
запоминает value
в стеке, await
ставит галочку, затем записывает обратно в value
. Поскольку другой код выполняется в это время, value
мог быть изменен, и тогда обновление могло бы быть отключено ... оно не является атомарным.
В вашем случае, однако, вы читаете из ctx.request.body
и пишете в ctx.body
, так что нет неатомарного обновления. Кроме того, вероятно, нет другого промежуточного программного обеспечения, доступного к тому же ctx
в то же время, поэтому не может быть никаких параллельных модификаций. Так что в вашем случае это ложное срабатывание, даже сомнительно, что это в любом случае положительно (это может быть ошибка в ESLint).