回调函数,等待接口请求完成后在运行

本文探讨了三种处理接口请求后的运行方式:时间函数、async/await和回调函数。时间函数简单但无法确保接口何时完成;async/await简洁但局限于当前作用域;回调函数可在不同页面使用,但可能导致地狱回调。示例代码展示了在JavaScript中如何使用这些方法,特别是在Vue组件中调用获取区域数据并创建场景的场景。
摘要由CSDN通过智能技术生成

如何在请求接口的函数后运行,目前我只知道三种方法
1,时间函数
优点:省事
缺点:你根本不知道什么时候接口请求成功
2,async await
优点:简便
缺点:不可在不同页面中使用
3.回调函数
优点:可不同页面使用
缺点:你们来说吧,我看不出来,地狱回调??

在请求页面中
这是个js文件,记得导出这个方法

function GetArea(index,callback) {
    let areaDatas = []
    areaEquipment(index).then(async (res) => {
        let resdata = res.data
        for (let i=0;i<resdata.length;i++) {
            areaDatas.push({
                areaType:TypeMapping(resdata[i].type) ,
                id:resdata[i].id ,
                name: resdata[i].name,
                content:resdata[i].remark ,
                pos: {
                    y: parseFloat(resdata[i].longitude),
                    x: parseFloat(resdata[i].latitude),
                    z: parseFloat(resdata[i].altitude),
                },
                rotation: JSON.parse(resdata[i].rotation),
                scale: parseFloat(resdata[i].scale),
                viewAng: JSON.parse(resdata[i].viewAng),
                pathAnchorPoints: JSON.parse(resdata[i].pathAnchorPoints),
            })
        }
        callback(areaDatas)
    })
}```
在调用的页面中
这是个vue组件,记得引入上面那个方法
```javascript
GetArea(val.id,function callback(areadata){
    proj.createArea(areadata);
    if (proxy.jtGisUI) {
      proxy.jtGisUI.uiUpdateScene(2, proj);
    }
  });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值