如何在不创建返回链的情况下从内部函数返回值?

时间:2019-06-05 04:05:51

标签: node.js

I/flutter ( 3441): The following assertion was thrown while handling a gesture:
I/flutter ( 3441): Navigator operation requested with a context that does not include a Navigator.
I/flutter ( 3441): The context used to push or pop routes from the Navigator must be that of a widget that is a
I/flutter ( 3441): descendant of a Navigator widget.

我在控制台中得到“ 5”。没关系。它是一个简单的较大问题的代码,其中包含许多嵌套函数。我不想一个接一个地返回。有什么办法,我可以从任何函数返回并将其返回给原始函数调用者。

4 个答案:

答案 0 :(得分:0)

function xyz() {
    function abc() {
        return 5;
    }
    return abc()
}
console.log(xyz());

答案 1 :(得分:0)

添加从abc函数调用返回的结果

function xyz() {
    function abc() {
        return 5;
    }
    return abc();

}
console.log(xyz());

或返回IIFE(立即调用函数表达式)

function xyz() {
  return (function abc() {
      return 5;
  })();

}

console.log(xyz())

答案 2 :(得分:0)

好的,也许您需要回电。我没有您要执行的操作的上下文,但是我会尝试的。

function logTheAnswer (a) {
    console.log(a)
}

function add(a, b, cb) {
    cb(a + b)
}


add(1,2,logTheAnswer)

现在您可以将回叫无限期嵌套,尽管尝试将其保持在最低限度,因为您会遇到回声。

答案 3 :(得分:0)

很抱歉,但是如果没有正确的输出表示,您的问题将令人困惑。但是,您可以使用回调函数,通过它们可以轻松管理嵌套的调用和返回。

function myFunc3(a, b, callback3){
    callback3(a+b);
}
function myFunc2(a, b, c, callback2){
    myFunc3(a+c, b, function(result2){
        callback2(result2);
    })
}
function myFunc1(){
    myFunc2(a,b,c, function(result1){
        console.log(result1);
    })
}