多个函数后返回true / false

时间:2018-09-27 20:51:58

标签: javascript

function topFunction() {
  if (checkUserRole()) {
    //trying to figure out if I will hit this line
  }
}

checkUserRole() {
  anotherFunction()
}

anotherFunction() {
  return true;
}

所以我要问的是,在这种情况下,原始checkUserRole()是否会被认为是正确的?还是我需要以某种方式将trueanotherFunction()传递到checkUserRole()

2 个答案:

答案 0 :(得分:3)

否,您需要明确将其退还:

class SomeClass {
    lazy var executeOnce: () -> Void = {
        doSomething()
        return {}
    }()

    func doSomething() {
        print("This should be executed once")
    }
}

let someClass = SomeClass()
someClass.executeOnce()
someClass.executeOnce()
someClass.executeOnce()

function topFunction() { if (checkUserRole()) { //trying to figure out if I will hit this line } } checkUserRole() { return anotherFunction(); } anotherFunction() { return true; } 函数中没有返回的情况下,从checkUserRole返回的true丢失了。您最初编写它的方式不会从anotherFunction返回任何内容,这意味着无论checkUserRole或{发生了什么,它将在topFunction的if语句中通过“真实的”测试{1}}。

答案 1 :(得分:0)

您在checkUserRole方法中缺少return语句