Javascript:函数会调用所有调用过它的函数的所有回调吗?

Javascript:函数会调用所有调用过它的函数的所有回调吗?,javascript,callback,Javascript,Callback,假设我们有一个函数 function kevin(cb){ //Ok then, so async stuff here, then, when done, cb(1); <== reply; } 然后,在上述调用收到应答之前,另一个块调用kevin() kevin(y=> console.log(y)); 在使用Java一段时间后,我有点困惑,上面提到的,在Java中,如果这些回调是Java接口,并且对kevin的第二次调用发生在第一次调用返回之前,那么第二次调

假设我们有一个函数

function kevin(cb){
   //Ok  then, so async stuff here, then, when done, 
   cb(1); <== reply;
}
然后,在上述调用收到应答之前,另一个块调用
kevin()

kevin(y=> console.log(y));
在使用Java一段时间后,我有点困惑,上面提到的,在Java中,如果这些回调是Java接口,并且对
kevin
的第二次调用发生在第一次调用返回之前,那么第二次调用将覆盖第一次调用,并且只返回第二次调用,要求
复合模式
确保在方法完成时记录并完成所有回调

但是在Javascript中,我没有收到任何错误,一切正常,所有调用
kevin()
的函数回调都被调用


我正在用打字脚本做这件事。因此,以上实际上是类中的方法。

后续函数调用不会以任何方式取代以前的函数调用。如果在函数中等待某个异步事件,则会在事件循环中为每个等待安排一个新的回调。简单的例子:

setTimeout(()=>console.log(1));
setTimeout(()=>console.log(2));

setTimeout(()=>console.log(3))不知道你到底有什么疑问。在上述通话收到回复之前,您所说的通话
kevin()
是什么意思?什么答复?当您执行
kevin(y=>console.log(y))
时,该函数会立即执行。@OscarPaz-OP可能意味着两个调用是异步的?可能。这就是我问的原因。但是,在这个过程中没有异步example@OscarPaz用回调函数调用函数,然后等待,这不是异步的吗?在这种情况下,以后不会发生任何事情(类似于异步的定义)
x=>setTimeout(()=>console.log(x),1000)
将是一个异步回调。1+,那么,对函数
kevin
的每次调用都将创建一个新对象,该
kevin
将在其中存在?与处理所有调用的
kevin
的一个实例相反?不。
kevin
是一个函数,而不是一个对象。(星号-星号脚注-对象定义…)它将在堆栈上放置函数调用,就像任何常规函数调用一样。如果函数中等待了某个异步事件,则会在事件循环中为每次等待安排一个新回调。好的。谢谢,我不知道
如果函数中等待了某个异步事件,则会在“事件循环”中为每次等待安排一个新回调,我认为我必须做这个循环并手动处理,就像在Java中一样。不,Javascript不会向用户代码公开底层事件循环的细节。就在那里。我很想看看下面如何处理这个
事件循环
,如果有的话,请包括一些链接。
kevin(y=> console.log(y));