簡體   English   中英

從子函數中完全突破 javascript

[英]Full break out javascript from child function

簡單的問題,我猜...

function foo1() {
    foo2();
    // should not hit this line
}
function foo2() {
    foo3();
    // should not hit this line
}
function foo3() {
   if(someCondition)
      // should not hit this line
}

如果在 foo3() 中,如果我使用簡單返回,它將繼續在 foo2() 和 foo3() 中執行。

我知道可以檢查返回值等等,我只是想知道是否可以從 foo3() 完全退出?

要真正回答您的問題,當然,您可以從foo3() throw

 function foo1() { console.log(1) foo2() console.log("Never hits") } function foo2() { console.log(2) foo3(3) console.log("Never hits") } function foo3() { if (true) throw "Breakout" } try { foo1() } catch(e) { console.log(e) }

這是異常冒泡的部分原因。 以這種方式中止執行可能是有原因的,但您可能希望考慮替代方案。

但是您 可能不想這樣做,因為這是一個非常臭的架構,但您已經知道更慣用的替代方法是檢查回報。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM