账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    methods方法.then之后return内容undefined
    31
    0

    需求描述

    我有一个查看座位信息的功能,根据日期呈现不同的座位状态
    shopInfo里面有座位的初始信息但没有座位情况,只有在featchSeatList里面才有已经被订座为座位信息,现在我想切换日期呈现座位信息,但是放在data里面没一起变化,只有点了座位才变化

    题目描述

    我在computed调用methods中的一个方法getSeat,getSeat会发起请求带回数据,我将其组装后重新return,但是我连请求带回数据都不能return

    data数据结构

                shop:{
                    URL:'',
                    img:'',
                    ……
                    seat:[{id:xx,title:xx},{id:xx,title:xx}……]
                    //后触发了featchSeatList每个对象内都会增加一个额外的变量disabled
                    //变成{id:xx,title:xx,disabled:0},{id:xx,title:xx,disabled:1}
                },

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

        computed: {
            newSeat() {
                console.log('返回')
                console.log(this.getSeat())
                return this.getSeat()
            }
        },

    methods中:

            getSeat(res) {
                this.seatQuery.date = this.date,
                this.seatQuery.shop_id = this.sid,
                this.seatQuery.point = this.chooseTime
                featchSeatList(this.seatQuery).then(res => {
                    let _this = this
                    // 检查已经预定的餐桌
                    if(res.length!=0 && _this.shop){
                        _this.shop.seat.forEach(seat =>{
                            seat.disabled = 0
                            res.forEach(poi =>{
                                if(!_this.seatQuery.noon_after || poi.noon_after == _this.seatQuery.noon_after){
                                    if(poi.seat_id == seat.id ) {
                                        seat.disabled = 1
                                    }
                                }
                            })
                        })
                        console.log('座位情况')
                        console.log(_this.shop.seat)
                        this.$set(_this.shop,'seat',_this.shop.seat)
                    } else {
                        _this.shop.seat.forEach(seat =>{
                            seat.disabled = 0
                        })
                        console.log(_this.shop.seat)
                        this.$set(_this.shop,'seat',_this.shop.seat)
                    }
                })
            },
    
    
    

    你期待的结果是什么?实际看到的错误信息又是什么?

    目前是undefined,我想正常显示这个数组……

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 薄荷成瘾者 普通会员 1楼

      在JavaScript中,.then方法用于执行Promise中的then方法,.return方法用于返回Promise的解决方案。当你在.then方法中返回undefined时,这个Promise的解决方案将会被默认设置为undefined。

      例如,假设你有一个Promise,它会计算两个数的和:

      javascript let sum = await calculateSum(1, 2); console.log(sum); // 输出3

      在这个例子中,.then方法将返回3,这将导致Promise的解决方案设置为3。然后,.return方法将返回undefined,因此.then方法不会被执行。

      如果你想要让.then方法在返回undefined之前执行,你可以使用await关键字:

      javascript let sum = await calculateSum(1, 2); console.log(sum); // 输出3

      在这个例子中,.then方法将不会被执行,直到calculateSum函数返回一个值。然后,.return方法将返回undefined,这意味着.then方法将被执行,计算结果将被输出。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部