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));
Вот как будет выглядеть ваша промисифицированная функция
const handleFiles = (str) => {
return new Promise((resolve, reject) => {
if(str){
let result = str;
resolve(result);
} else {
reject('Укажите аргумент');
}
});
};
В resolve передаете аргумент для then, а в reject аргумент для catch
Реализация:
handleFiles('1').then(result => console.log(result)).catch(e => console.log(e));
let handleFiles = new Promise((resolve, reject) => {
let result;
result = 'hello';
resolve(result);
if (false) {
reject('error');
}
});
handleFiles.then(result => console.log(result), error => console.log(eror));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не запускается веб приложение на локальной машинеЗакидывал war в webapps, распаковывал в ROOT - одно и то же
пытаюсь подключиться к бд используя MS SQL Server как субдСкачал и поставил драйвер, добавил его в проект
Есть RecyclerView с публикациями (в вью этих публикаций есть ImageView)Например загрузил из инета 100 публикаций и для каждой с помощью Picasso библоиотеки...
Есть метод set() который задает значение enum - STARTEDКак сделать так, чтобы через определенное время duration значение enum задалось как FINISHED