Должна ли функция быть асинхронной, если она не использует await - PullRequest
0 голосов
/ 28 сентября 2019

Рассмотрим функцию javascript, которая по сути является оберткой для другой асинхронной функции.Должна ли эта функция обертки быть асинхронной сама по себе, даже если ей нужно дождаться основного обещания?

Вот простой пример:

function myWrapperFunction() {
    console.log('Calling myAsyncFunction')
    return myAsyncFunction();
}

async function myAsyncFunction() {
    const url = 'URL'
    const data = await fetch(url)
    return JSON.parse(data)
}

Должно ли myWrapperFunction быть async?Я предполагаю, что это не нужно учитывать, поскольку он просто возвращает обещание от myAsyncFunction.Однако первый пример в правильном разделе кода правила no-return-await es-lint намекает иначе: https://eslint.org/docs/rules/no-return-await

Спасибо!

1 Ответ

0 голосов
/ 28 сентября 2019

Я бы написал так:

function myWrapperFunction() {
    console.log('Calling myAsyncFunction')
    const promise = myAsyncFunction();
    return promise;
}

, чтобы улучшить удобство сопровождения кода.Например, чтобы другим людям не нужно было спрашивать себя, является ли возвращение Обещания намеренным или нет.

...