是否有任何可能的方法可以在执行return语句后保留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.
}
以上示例不是确切的实现,但这是我需要实现的逻辑。
var fact = tree(n);
if (fact == 'true') {
count++;
}
我正在寻找任何能够在功能中保持控制的解决方案,即使在返回之后由于各种原因而无法在此解释。任何替代逻辑也是受欢迎的:)
答案 0 :(得分:0)
不,那么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
}
答案 1 :(得分:0)
定义结果变量并在函数的最后执行返回:
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语句延迟到函数的末尾(或者至少在其他代码运行之后)。
答案 2 :(得分:0)
如果希望异步执行最后一部分,可以尝试使用setTimeout方法。
function tree(n){
//do stuff before return
//execute something parallel to returning
async(function(){do_something;}));
return...
}
function async (fn) {
setTimeout(fn, 20);
}