Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript—调用回调时终止函数执行的样式_Javascript_Node.js - Fatal编程技术网

Javascript—调用回调时终止函数执行的样式

Javascript—调用回调时终止函数执行的样式,javascript,node.js,Javascript,Node.js,我们经常需要确保在回调完成后执行不会返回到函数我的问题是,这两种风格在效果上有没有细微的差别,或者它们是完全相同的 function myFunction(foo, callback) { if(foo) { callback(err, true); //Here return; //Here } bar(); } 以及: 编辑:对不起,我意识到我的问题不是很清楚。我所说的情况是,我不关心返回什么(因为它不会被同步使用)

我们经常需要确保在回调完成后执行不会返回到函数我的问题是,这两种风格在效果上有没有细微的差别,或者它们是完全相同的

function myFunction(foo, callback) {
    if(foo) {
      callback(err, true); //Here
      return;              //Here
    }
    bar();
}
以及:


编辑:对不起,我意识到我的问题不是很清楚。我所说的情况是,我不关心返回什么(因为它不会被同步使用),但返回只是为了确保回调函数完成后,函数中不会继续执行。

这完全取决于您想要返回什么


如果要返回回调的值,请使用第二种方法,首先是< /P> < P>作为编码风格,如果你想避免一个函数内的<代码>返回< /代码> s,这是一些人认为是坏事的,那么

function myFunction(foo, callback) {
    if(foo) {
        callback(err, true);
    } else {
        bar();
    }
}

嗯,是的,我想我需要把我的问题表达得更清楚一点。我所说的情况是,我不关心返回的是什么(因为它不会被同步使用),但返回只是为了确保函数中不会继续执行,在回调函数完成后。那么这两个函数是完全相同的。@UpTheCreek在这种情况下,第一个选项会更好,因为它更简单explicit@ArunPJohny-谢谢。是的,我更喜欢第二个,因为它不太冗长。但我想从现在开始我会选择第一个,因为它避免了这个答案中所提出的歧义。这个问题可以归结为是否应该从函数中返回某些内容。@tracevipin-嗯,函数不需要返回任何内容,但它是否返回某些内容并不重要。我不确定这个问题是否可以简单地简化为这个问题。@tracevipin-作为一个例子,看一下本页上的最后一个代码块:-似乎错误回调不需要“返回”任何东西,但它们使用的是第二种样式。是的,我同意,但我个人不喜欢跨越整个函数的条件块(可能很大),因为它们更难阅读,并且会导致更多的大括号和缩进。
return foo?callback(err,true):bar();
?heh:)对于短函数,我对if-else并没有问题,但对于长函数,若要寻找匹配的大括号,那个就有点麻烦了。
function myFunction(foo, callback) {
    if(foo) {
        callback(err, true);
    } else {
        bar();
    }
}