javascript - 如何从javascript中的函数返回值
问题描述
我正在调用一个使用 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 块中 return getInfo
。
对于此示例somefunction
,返回一个承诺,该承诺将在 3 秒后解决。由于async
将返回一个承诺,因此您可以在 athen
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)
})
推荐阅读
- amazon-web-services - 如何检查哪个 AWS 账户和区域是部署的应用程序
- java - JavaSound API 不可用
- google-apps-script - 使用应用程序脚本幻灯片 (GAS) 服务发布幻灯片文件
- php - 中间件标头不适用于 laravel 7
- c# - C#,WPF - 使用 ControlTemplate 和 Binding 时不会显示 ListView 的项目
- python - 如何计算两个事件的总和,直到条件在 Python 中中断?
- game-maker - 在游戏制作工作室中编译程序时出错
- javascript - 无法通过 JS 渲染 svg
- python - 有没有办法分析一个文本文件来检查这个标准
- sql - Oracle PL SQL 过程需要修改以接受具有所有类型字符的数组并拆分