Скажем, у нас есть функция.
function kevin(cb){
//Ok then, so async stuff here, then, when done,
cb(1); <== reply;
}
Затем:
....
kevin(x=> console.log(x));
Затем другой блок вызывает kevin()
до того, как вышеуказанный вызов получит ответ.
kevin(y=> console.log(y));
Я немного запутался после того, как некоторое время работал с Java, с вышеописанным, в java, если эти обратные вызовы были интерфейсами Java, а второй вызов kevin
произошел до того, как был возвращен первый вызов, второй вызовпереопределит первое, и будет возвращена только вторая, требуя composite pattern
, чтобы убедиться, что все обратные вызовы записываются и выполняются, когда метод завершен.
Но в Javascript я не получаю никакихошибки, все работает, и все функции обратного вызова, которые вызывают kevin()
, вызываются.
Я делаю это на Angular с машинописью.Таким образом, вышесказанное на самом деле методы в классах.