首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript return语句停止执行其余语句

javascript return语句停止执行其余语句
EN

Stack Overflow用户
提问于 2020-03-16 01:52:26
回答 2查看 38关注 0票数 0

我有一个场景,如果上一个函数有return语句,我想中断下一个函数调用,但我可以看到它正在执行下一个函数调用,即使我在下面名为"b“的函数中有return语句。

代码语言:javascript
复制
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()

输出:

代码语言:javascript
复制
'function a call!!'
'function b call!!'
'function c call!!'

预期输出:

代码语言:javascript
复制
'function a call!!'
'function b call!!'

有没有人能给我解释一下怎么做才是正确的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-16 01:55:51

不能对来自被调用者函数的调用者函数执行控制流。您的代码只从b()返回一个function,但是该函数永远不会执行,即使执行了,它也不会有预期的行为。如果你想中断main,必须在main中进行:

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2020-03-16 01:56:05

你不能取消C的函数调用,因为你不检查b返回什么。例如,让b返回true,并用

代码语言:javascript
复制
let resultB = b();
if(!resultB) c();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60695941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档