@ivandao

Как упростить запись асинхронной функции?

async getData({params}) { return await getSpecialData(p, {params}); },
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если getSpecialData точно асинхронная, то можно опустить async await(потому что оные - всего лишь сахар над Promise, если функция так или иначе возвращает Promise - она асинхронна(и наоборот), напоминать ей об этом не надо):
getData({params}) {return getSpecialData(p, {params})}


Дальше, если нам пофиг, что в переданный объект попадёт что-то ещё кроме params и если p не меняется можно просто забиндить, :getData: getSpecialData.bind(null, p)

Если p меняется использовать стрелку:getData: wParams => getSpecialData(p, wParams)

Если params должен быть единственным ключом - аналогично:
getData: ({params}) => getSpecialData(p, {params})

Если getSpecialData не всегда асинхронная - второй await можно опустить в любом случае:
async getData({params}) {return getSpecialData(p, {params})}
getData: async wParams => getSpecialData(p, wParams)
getData: async ({params}) => getSpecialData(p, {params})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
если getSpecialData возвращает промис, то так

const getData = ({params}) => getSpecialData(p, {params})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы