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”。没关系。它是一个简单的较大问题的代码,其中包含许多嵌套函数。我不想一个接一个地返回。有什么办法,我可以从任何函数返回并将其返回给原始函数调用者。
答案 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);
})
}