这个问题在这里已有答案:
我正在调用一个使用async / await的函数。该函数将在const getinfo中获取一个字符串
如何在调用下面的函数时返回这个“getinfo”字符串?
oneFunction("hello")
oneFunction("hello")
function oneFunction(info) {
(async function () {
try {
const getinfo = await somefunction(info)
} catch (e) {
console.error(e);
}
})()
}
您可以删除立即调用的函数表达式,而不是return
函数。在try块内返回getInfo
。
对于这个例子,somefunction
返回一个在3秒后解决的承诺。由于async
将返回一个承诺,你可以获得then
内的价值
function oneFunction(info) {
async function inner() {
try {
const getinfo = await somefunction(info);
return getinfo;
} catch (e) {
console.error(e);
}
}
return inner()
}
function somefunction(val) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('Value from aysnc ' + val)
}, 3000);
})
}
oneFunction("hello").then((data) => {
console.log(data)
})