@sinevik

Почему не срабатывает async?

const handleFiles = () => {
  return async handle => {
    let result;
    result = 'hello';
    return result;
  };
};
handleFiles().then(result => console.log(result)).catch(console.log(e));


Почему не срабатывает данный скрипт?

Uncaught TypeError: handleFiles(...).then is not a function
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
А с чего вы решили, что асинхронная функция должна возвращать Promise без вызова?
Будет работать либо так:
const handleFiles = () => {
  return async handle => {
    let result;
    result = 'hello';
    return result;
  };
};
handleFiles()().then(result => console.log(result)).catch(console.log(e));

либо так:
const handleFiles = async () => {
  let result;
  result = 'hello';
  return result;
};

handleFiles().then(result => console.log(result)).catch(console.log(e));


Складывается впечатление, что вы видели где-то асинхронные действия redux-trunk и даже писали, но толком не понимаете как они работают и зачем над асинхронной функцией обертка. Дело в том, что там вы передаете в dispatch вызов action и middleware получает возвращаемую функцию, а затем ее вызывает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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