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

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

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

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

阅读 449
评论 2019-08-26 提问
    4 个回答
    export default {
      name: 'App',
      data() {
        return {
          a: 3
        }
      },
      methods: {
        demo1() {
          if (this.a > 3) {
            return false
          }
          return true
        },
        demo2() {
          if (!this.demo1()) return
          // 代码段二
        }
      }
    }
    评论 赞赏 2019-08-26
      迷鹿
      • 378

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

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

      评论 赞赏 2019-08-26
        methods : {
            async demo1 () {
                await new Promise((resolve,reject)=>{
                    if (a > 3) reject()
                })
            },
            async demo2 () {
                try {
                   await this.demo1 () 
                } catch (error) {
                    
                }
                   
            }
        }

        哈哈, 实际上没任何用~

        评论 赞赏 2019-08-26

          demo1中返回false或者true

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

          demo2中判断函数demo1的返回

          demo2 () {
              代码段一
              if (demo1() === false) {
                  return
              }
              代码段二
          }
          评论 赞赏 2019-08-26
            撰写回答

            登录后参与交流、获取后续更新提醒