В handleWithCallback
вы вызываете функции callback
, передавая аргументы, но обратите внимание, что ваши действительные функции getX
обратного вызова не используют этот аргумент.Они должны взять функцию обратного вызова в качестве аргумента и вызвать ее.
Примечание: я сократил задержки, чтобы вам не пришлось долго ждать, чтобы увидеть результат:)
function getA(cb) {
return setTimeout(() => cb('a'), 100);
}
function getB(cb) {
return setTimeout(() => cb('b'), 200);
}
function getC(cb) {
return setTimeout(() => cb('c'), 300);
}
function handleWithCallback(callback1, callback2, callback3) {
callback1(a =>
callback2(b =>
callback3(c => console.log(a + b + c))
)
);
}
handleWithCallback(getA, getB, getC);