Я пытаюсь понять следующие 2 примера функций, используя async-await и обещание.
Я ожидаю, что обе функции вернут "output", но функция, использующая обещание, вместо этого возвращает неопределенное значение.
Почему это так? Я уже возвращаю значение в promise.resolve (). Then (), но в конце концов значение не возвращается.
Я столкнулся с этой проблемой, работая над моим проектом. Я использовал подход обещания, чтобы возвратить значение, но значение не возвращено. Затем я решил эту проблему с помощью async-await, но я не мог понять, почему?
async function asyncFunction(input) {
try {
let output = await Promise.resolve("output");
return output;
} catch (err) {
console.log(err);
}
}
function promiseFunction(input) {
Promise.resolve().then(function() {
return "output";
}).catch(function(err){
console.log(err);
})
}
async function run() {
let a = await asyncFunction();
let b = await promiseFunction();
console.log("async function output: " + a); //async function output: output
console.log("promise function output: " + b); //promise function output: undefined
}
run();
Я ожидаю, что asyncFunction () и promiseFunction () вернут значение «output», но обещание обещает, что undefined не определен.