请问vue中如何通过一个函数控制另一个函数

如题(不知道我形容的是否贴切):
比如我的代码如下实例:

methods: {
    demo1 () {
        if (a > 3) {
            return
        }
    },
    demo2 () {
        代码段一
        demo1 ()        
        // if (a > 3) {
        //     return
        // }
        代码段二
    }
}

我在想有没有一种可能,通过函数demo1中return去终止demo2中“代码段二”的执行,
就像“if (a > 3)”这个判断写在demo2中一样

阅读 3.8k
4 个回答
export default {
  name: 'App',
  data() {
    return {
      a: 3
    }
  },
  methods: {
    demo1() {
      if (this.a > 3) {
        return false
      }
      return true
    },
    demo2() {
      if (!this.demo1()) return
      // 代码段二
    }
  }
}

很遗憾,不能。一楼你的自答,仔细看,其实两段代码中的写法一模一样。

除非判断逻辑比较复杂,并且可能在不同的地方要多次复用,那样的话,把判断逻辑剥离出来才有意义,否则这段判断逻辑直接写到同一个方法中就足够了。

methods : {
    async demo1 () {
        await new Promise((resolve,reject)=>{
            if (a > 3) reject()
        })
    },
    async demo2 () {
        try {
           await this.demo1 () 
        } catch (error) {
            
        }
           
    }
}

哈哈, 实际上没任何用~

demo1中返回false或者true

demo1 () {
    if (a > 3) {
        return false
    }
    return true
},

demo2中判断函数demo1的返回

demo2 () {
    代码段一
    if (demo1() === false) {
        return
    }
    代码段二
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题