У меня возникли проблемы с пониманием концепции асинхронных функций и способов их правильной реализации.
В приложении Angular у меня есть следующая функция в службе, которая разрешается правильно, но я запуталасьотносительно того, является ли эта реализация неправильной, и если нет, есть ли лучший подход для написания всего этого вместе.
Функция, упрощенная для ясности:
async doSomething(param:string): Promise<any> {
this.activeParam = param;
return this.doSomethingElse(param).then((response)=> {
return Promise.resolve(response);
}).catch((error) =>{
return Promise.reject(error);
});
}
И я вызываю эту функцию в моем компоненте следующим образом:
this.service.doSomething('setting').then((result) =>{
console.log('success:', result);
},(error)=>{
console.log('error:', result);
});
ОБНОВЛЕНИЕ
Мне нужно немного отдохнуть, прежде чем опубликовать этот вопрос, так как он изначально некорректен.
Поэтому я хотел бы добавить обновление, чтобы избежать путаницы с другими, сталкивающимися с подобными проблемами и появляющимися здесь какрезультат.
Во-первых, спасибо @MicheleLambertucci за то, что нашли время прояснить и дать исчерпывающий ответ.
Во-вторых, id хотел бы поделиться следующей ссылкой, в которой IMO объясняет асинхронные функции очень простым способом..
Await vs Return vs Return Await
И более подробно здесь от того же автора