当前位置: 首页 > news >正文

Javascript 普通非async函数调用async函数

假设我们有一个异步函数

async function asyncFunction() {console.log("开始执行异步函数");await new Promise(resolve => setTimeout(resolve, 1000)); // 模拟异步操作console.log("异步函数执行完毕");
}

我们在调用这个异步函数时,比如在一个普通函数里调用它

for(var i=0; i< 10; i++)
{await asyncFunction()
}

可能会遇到这个错误:

仅允许在异步函数和模块顶级使用 "await"

这是因为async 函数是异步函数,它返回一个 Promis,await必须与async一同出现。所以这里普通函数无法调用它。

解决方法是使用.then()

我们新建一个普通非async函数

function myFunction() {console.log("开始调用异步函数");asyncFunction().then(() => {console.log("异步函数调用完毕");});
}for(var i=0; i< 10; i++)
{myFunction()
}

这样就可以了,如果需要有返回值:

function myFunction() {let result = "";console.log("开始调用异步函数");asyncFunction().then((re) => {result = re; //不要在then里直接返回,否则仍然是Promise对象console.log("异步函数调用完毕");});return result; 
}for(var i=0; i< 10; i++)
{console.log(myFunction())
}


http://www.mrgr.cn/news/46577.html

相关文章:

  • 【Rust】结构体定义域实例化
  • 【微服务justsoso-cloud系列】目录
  • 【JAVA 基础 第(18)课】HashSet 使用方法详解
  • 使用 versions-maven-plugin 和 flatten-maven-plugin 插件惯例 maven 项目版本
  • Java进阶-在Ubuntu上部署SpringBoot应用
  • 《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》
  • 『网络游戏』客户端使用PESorket发送消息到服务器【14】
  • posix接口与system V接口及其异同
  • GitHub每日最火火火项目(10.9)
  • Sentinel
  • 24.第二阶段x86游戏实战2-背包物品属性分析
  • 【SQL】换座位
  • R语言运行地理探测器模型
  • 直击工博会 | 万物集与四大供应商强强联手,开启战略合作新纪元!
  • 全方位提升测试技能,轻松应对测试面试
  • 常见问题搜集
  • 指针函数C++
  • 不会位运算?常见位运算总结!~~~
  • 【C语言】使用结构体实现位段
  • 线程(五)线程的同步和互斥——线程信号量
  • ZigMa: A DiT-style Zigzag Mamba Diffusion Model
  • OpenJudge | Disk Tree
  • vue 条件渲染
  • UI开发:从实践到探索
  • YOLO v1详解解读
  • windows中使用类似tree的功能