开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 576|回复: 3
收起左侧

[问答] onLoad通过接口获取数据,为什么不是按执行顺序打印的

[复制链接]
结帖率:60% (3/5)
发表于 2023-9-22 11:40:31 | 显示全部楼层 |阅读模式   浙江省舟山市
30精币
export default {  
    data() {  
        return {  
            departmentLeaderA: ['请选择'],  
        };  
    },  

    onLoad(options) {  
        this.getData();  
        console.log(this.departmentLeaderA);  
    },  

    methods: {  
        async getData() {  
            let url = 'get/users/to/car/order';  

            const data = await wxRequest.Get(url, {  
                id: this.item.id  
            });  

            if (data.code != 404 && data.data !== undefined) {  
                for (let k in data.data) {  
                    this.departmentLeaderA[data.data[k].id] = data.data[k].name;  
                }  
            }  
            console.log(this.departmentLeaderA);  
        },  
    },  
};

打印的分别是:
["请选择", ob: Observer]
["请选择", "张三", "李四", ob: Observer]


问:为什么不是按执行顺序打印的

最佳答案

查看完整内容

getData是个async异步函数,你要保证顺序执行,call这个函数时就要加个await。 ```js onLoad(options) { await this.getData(); console.log(this.departmentLeaderA); }, ``` 如果不懂js的异步概念,可以搜搜掘金上一大堆讲async和await异步的帖子。
结帖率:100% (1/1)

签到天数: 1 天

发表于 2023-9-22 11:40:32 | 显示全部楼层   浙江省杭州市
getData是个async异步函数,你要保证顺序执行,call这个函数时就要加个await。

```js
onLoad(options) {  
        await this.getData();  
        console.log(this.departmentLeaderA);  
    },  
```

如果不懂js的异步概念,可以搜搜掘金上一大堆讲async和await异步的帖子。
回复

使用道具 举报

结帖率:81% (13/16)

签到天数: 1 天

发表于 2023-10-6 12:59:26 | 显示全部楼层   安徽省池州市
[JavaScript] 纯文本查看 复制代码
export default {
  data() {
    return {
      departmentLeaderA: ['请选择'],
    };
  },

  async onLoad(options) {
    await this.getData();
    console.log(this.departmentLeaderA);
  },

  methods: {
    async getData() {
      let url = 'get/users/to/car/order';

      const data = await wxRequest.Get(url, {
        id: this.item.id,
      });

      if (data.code != 404 && data.data !== undefined) {
        for (let k in data.data) {
          this.departmentLeaderA[data.data[k].id] = data.data[k].name;
        }
      }
    },
  },
};

回复

使用道具 举报

签到天数: 1 天

发表于 2024-1-2 23:16:45 | 显示全部楼层   四川省成都市
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表