javascript - async/await 函数中的 Javascript async/await 函数
问题描述
const function1 = () => {
let isSuccess = false
function2(
// This a synchronous function it always return true or false. If result is true, ı want to change value of isSuccess as true
)
return isSuccess
}
funtions2 是一个同步函数,它总是返回 true 或 false。如果结果为真,我想将 isSuccess 的值更改为真。但是 isSuccess 总是返回 false。因为function2需要一点时间。我想等待返回 isSuccess 直到函数 2 的结果。我在stackoverflow上搜索有一些例子,但我不明白请帮助我
解决方案
在这里,我假设function2
是异步的并执行某种异步工作。我正在使用该delay
函数在下面的代码中模拟异步工作。
在您的代码中,您不要调用 function2
; 函数调用中()
缺少 。
此外,呼叫未await
编辑。由于function2
是异步的,它会开始运行,但会继续执行,因为await
需要告诉 JS 你要等到函数返回的 promise 解决后再继续。
如果这仍然不清楚,我建议您阅读有关async/await的 MDN 文档
以下是一个工作示例:
const function2 = async () => {
try {
// .. do some async stuff, such as:
const delay = ms => new Promise(res => setTimeout(res, ms))
await delay(3000)
return true;
}
catch {
return false;
}
}
const function1 = async () => {
let isSuccess = false;
isSuccess = await function2();
return isSuccess;
}
// Test it out:
async function main(){
console.log("calling function1...");
console.log("function1 returned: " + await function1());
};
main();
推荐阅读
- c++ - 不知道怎么做模板
- c# - 关于测试 MediatR 控制器和处理程序的建议
- rabbitmq - 使用 Spring Cloud Stream 和 RabbitMQ 设置消息属性
- highcharts - 如何在 React 应用中导入或加载哑铃图
- c++ - 有没有办法将对象动态更改为另一种类型?
- reactjs - 如何使用 Typescript 为 React Native Expo dev 做 AuthContext、createDataContext?
- tabulator - 找出用户何时编辑了行
- python - 如何对视图 Qweb 中的字段求和?奥多 14
- python - 如何字段仅计算不为空的值?
- sql-server - SQL Server 批量插入权限