Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 Node.js-异步函数不回调的后果是什么?_Javascript_Node.js - Fatal编程技术网

Javascript Node.js-异步函数不回调的后果是什么?

Javascript Node.js-异步函数不回调的后果是什么?,javascript,node.js,Javascript,Node.js,异步函数直接返回而不回调的后果是什么? 我知道你不应该这样做。我的问题是假设性的——我只是想知道这样做的后果是什么 这对堆栈有害吗?它会导致内存泄漏吗 例如: function whatAreMyConsequences(value, callback) { value++; if(value > 1000) { return; } callback(null, value); } 只要调用代码知道回调可能不会被调用(并且在逻辑

异步函数直接返回而不回调的后果是什么?

我知道你不应该这样做。我的问题是假设性的——我只是想知道这样做的后果是什么

这对堆栈有害吗?它会导致内存泄漏吗

例如:

function whatAreMyConsequences(value, callback) {
     value++;
     if(value > 1000) {
         return;
     }

     callback(null, value);
}

只要调用代码知道回调可能不会被调用(并且在逻辑流中不依赖于它),那么就不会有任何后果。如果不调用回调,则内存泄漏的可能性几乎没有。无论调用与否,它都不会对堆栈产生净影响

作为参数传递的函数只是接收函数的参数。接收函数可以决定使用该函数执行任何操作。它可以称之为永远、永远或有时

当然,调用者将期望某种行为,因此由接收函数来保持其契约结束,或者调用者的代码将无法正常工作,但这只是正确的编程逻辑

事实上,如果有一个函数接受四次回调,并根据发生的事情或调用的其他参数决定调用四次回调中的哪一次,这将是非常有效的编程

看看承诺:

 $.ajax(...).then(mySuccessHandler, myErrorHandler);

这两个回调中只有一个会被调用,这是经过设计的。

Heh,这很快。谢谢,什么都没有?不调用回调是未采用的路径。这不像node js检查您的函数参数并要求调用其中的所有可能回调,否则,您不能像通常的情况那样拥有不同的“成功”或“错误”回调。