查看: 10508|回复: 2

如何处理js异步处理

升级   14.43%

238

主题

133

回帖

1443

积分

注册会员

Rank: 2

积分
1443
发表于 2022-7-25 14:37:51 | 显示全部楼层 |阅读模式
我在写请假时间的时候要先判断该天是否是节假日,所以我得先去获取法定假期的数据
但是我获取以后我用了如下两种js方法用了以后数据表单都不能显示数据
1:
在change时间中的使用时间延迟的方法
setTimeout(function leave() { this.data.add("result",6.5,true) }, 1000);

结果是debugger能看到数据,但是表单上不显示
2:
在change事件中使用异步方法

var holidays=[]

var that=this

debugger
getqw()
console.log('nihao');
debugger
//获取节假日把指定ID的的框中显示内容
async function getqw() {
await getqwTime();
debugger
console.log(holidays.length)
//我在这儿显示内容但是也不会显示在表单中
this.data.result=6.5
debugger
}

//异步获取节假日
async function getqwTime() {
      return new Promise((resolve) => {
          var action = that.Actions.load("x_attendance_assemble_control");
               action.AttendanceWorkDayConfigAction.listAllAttendanceWorkDayConfig(//平台封装好的方法
               function( json ){ //服务调用成功的回调函数, json为服务传回的数据
                  data = json.data; //为变量data赋值
                  console.log(data)
                  console.log(data.length)
                  for(var i=0;i<data.length;i++){
                     holidays.push(data.configDate)
                  }
                  resolve()
                  console.log('holidays',holidays)
               }.bind(this),
               function( json ){ //服务调用失败的回调函数, json为服务传回的数据
                  data = json.data; //为变量data赋值
               }.bind(this)
               );

      })
    };

请你帮我看看。我要处理这种异步的情况应该怎么办????


回复

使用道具 举报

升级   14.43%

238

主题

133

回帖

1443

积分

注册会员

Rank: 2

积分
1443
发表于 2022-7-25 15:05:37 | 显示全部楼层
不好意思啊!!我把this弄错了。这儿的this应该转义一下,我自己的锅不好意思
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-7-25 17:48:39 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread