我有一个场景,如果上一个函数有return语句,我想中断下一个函数调用,但我可以看到它正在执行下一个函数调用,即使我在下面名为"b“的函数中有return语句。
function main(){
a()
b();
c();
}
function a(){
console.log("function a call!!");
}
function b(){
console.log("function b call!!");
return function(){return 0;}
}
function c(){
console.log("function c call!!");
}
main()输出:
'function a call!!'
'function b call!!'
'function c call!!'预期输出:
'function a call!!'
'function b call!!'有没有人能给我解释一下怎么做才是正确的?
发布于 2020-03-16 01:55:51
不能对来自被调用者函数的调用者函数执行控制流。您的代码只从b()返回一个function,但是该函数永远不会执行,即使执行了,它也不会有预期的行为。如果你想中断main,必须在main中进行:
function main(){
a()
const bReturnValue = b();
if(bReturnValue <some condition>) {
return;
}
c();
}
function a(){
console.log("function a call!!");
}
function b(){
console.log("function b call!!");
return function(){return 0;}
}
function c(){
console.log("function c call!!");
}
main()发布于 2020-03-16 01:56:05
你不能取消C的函数调用,因为你不检查b返回什么。例如,让b返回true,并用
let resultB = b();
if(!resultB) c();https://stackoverflow.com/questions/60695941
复制相似问题