return语句在JavaScript中使用而不中断函数

return statement in JavaScript used without breaking out of the function

本文关键字:中断 函数 语句 JavaScript return      更新时间:2024-05-25

是否有任何可能的方法可以在执行返回语句后保留JavaScript函数中的控件?

下面的转述示例将解释我的要求:

调用的函数:

function tree(node) {
    if (node == 'root') {
        return true;
        // this return needs to be executed on IF condition 
        // being true and then continue executing the remaining 
        // statements of function as a requirement.
    }
    
    do_something;
    // this does some 
    // visualization changes and has to be 
    // after the IF statement. 
}

上面的例子不是确切的实现,但这是我需要实现的逻辑。

Calling语句如下所示:

var fact = tree(n);
if (fact == 'true') {
    count++;
}

我正在寻找任何解决方案,即使在由于各种原因返回后,也能保持对函数的控制,这在这里解释得太多了。也欢迎任何替代逻辑:)

如果希望最后一部分异步执行,可以尝试setTimeout方法。

function tree(n){
    //do stuff before return
    //execute something parallel to returning
    async(function(){do_something;}));
    return...
}
function async (fn) {
    setTimeout(fn, 20);
} 

否,则不会执行if语句之外的其余语句。是否总是在函数末尾返回,如

function tree(node) {
  var stat; //create a local variable within tree method
  if(node=='root') {
    stat = true; //assign true to stat inside if
   }
   do_something;  //this function gets executed
   return stat; //now return it while exiting the method
 }

定义一个结果变量,并在函数的最后返回:

function tree(node){
  var result; // kind of a cached result
  if(node=='root') {
    result = true; // set the result
  }
  do_something;
  return result; // return the result
}

当使用return-语句时,在任何情况下都将离开函数上下文。因此,保持在函数内部的唯一方法是将return语句延迟到函数末尾(或者至少在其他代码运行之后)。