Callback получает только те аргументы, которые передал вызывающий код. Если spinner вычисляет результат, он должен вызвать onRoll с этим результатом.
Как согласовать аргументы callback в runSpinner
Callback получает только те аргументы, которые передал вызывающий код. Если spinner вычисляет результат, он должен вызвать onRoll с этим результатом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Контракт функции: runSpinner(onRoll) вызывает onRoll() без аргументов. Пользователь передаёт (value) => setResult(value) и получает undefined. Как исправить контракт, если результат вычисляет spinner?
Ответ
Callback получает только те аргументы, которые передал вызывающий код. Если spinner вычисляет результат, он должен вызвать onRoll с этим результатом.
Например: function runSpinner(onRoll) { const value = Math.floor(Math.random() * 6) + 1; onRoll(value); }. Задокументируйте результат как целое от 1 до 6. Если callback предназначен лишь для уведомления о старте, оставьте его без аргументов, а готовый результат передавайте другим callback или возвращаемым Promise. Имя параметра само по себе данные не создаёт.