js中的异步函数中如何阻止下一步执行?

作者站长头像
站长
· 阅读数 4
 getPlat({"tenantId":row.id}).then(response=>{
                console.log(response.rows.length)
                if(response.total>0){ 
                    this.$set(this.form2,"platAddr",response.rows[0].platAddr)
                    this.$set(this.form2,"platDesc",response.rows[0].platDesc)
                    this.$set(this.form2,"platDomain",response.rows[0].platDomain)
                    this.$set(this.form2,"platLogo",response.rows[0].platLogo)
                    this.$set(this.form2,"platName",response.rows[0].platName)
                    this.$set(this.form2,"id",response.rows[0].id)
                }else{
                    console.log("未设置平台")
                }

返回的数据结构如下:

{"total":0,"rows":[],"code":200,"msg":"查询成功"}

如上述代码加了IF判断,但是在浏览器中还是报错。

Uncaught (in promise) TypeError: response.rows[0] is undefined
    handlePlant index.vue:401
    promise callback*handlePlant index.vue:400
    click index.vue:350
    VueJS 4
    handleClick element-ui.common.js:9457

怎么阻止?

回复
1个回答
avatar
test
2024-06-20

已经解决,采用response.total > 0但是之前也试过,看样子应该是浏览器缓存影响的。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容