Если у вас есть обратные вызовы, вам придется иметь дело с этим на этом этапе.
Если вы не хотите использовать глобал, вам просто нужно вложить функции на неопределенный срок:
const A = (a, callback) => callback(a+5)
const B = (r, callback) => callback(r + 5);
A(5, (r) => B(r, console.log))
Невозможно просто вернуть его из обратных вызовов.
Тем не менее, вам не нужно иметь его действительно на высшем уровнеГлобальный.Он может быть «глобальным» внутри другой функции:
const A = (a, callback) => callback(a+5)
const B = (r, callback) => callback(r+5)
const run = () => {
let result;
A(5, r => B(r, r => { result = r }));
setTimeout(() => console.log(result), 50);
}
run()
Тем не менее, поскольку обратные вызовы являются асинхронным шаблоном, вы не можете принудительно заставить асинхронный режим быть синхронным, поэтому для использования глобального за пределами обратных вызовов вам все равнодолжен иметь какой-то тип ожидания или другой асинхронный шаблон для проверки результата.