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检查您的函数参数并要求调用其中的所有可能回调,否则,您不能像通常的情况那样拥有不同的“成功”或“错误”回调。