Страницы

Поиск по вопросам

воскресенье, 10 марта 2019 г.

ES6 синтаксис. Как правильно записать?

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


Ответ

Проблема в том, что handleFiles возвращает функцию, а не Promise, у которого есть метод then
Для решению нужно либо вызвать возвращенную функцию, либо возвращать результат вызова:
const handleFiles = () => { return async handle => { let result; result = 'hello'; return result; }; }; handleFiles()().then(result => console.log(result)).catch(e => console.log(e)); const handleFiles2 = () => { return (async handle => { let result; result = 'hello'; return result; })(); }; handleFiles2().then(result => console.log(result)).catch(e => console.log(e));

Комментариев нет:

Отправить комментарий