Promise меняет состояние только один раз: если первый callback вызвал reject, последующие resolve и reject уже не изменят результат.
Объясните, что произойдёт с Promise-обёрткой, если asyncCall по ошибке вызовет переданный callback несколько раз: сначала с ошибкой, затем с данными и затем снова с ошибкой.
Promise меняет состояние только один раз: если первый callback вызвал reject, последующие resolve и reject уже не изменят результат.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Promise меняет состояние только один раз: если первый callback вызвал reject, последующие resolve и reject уже не изменят результат.
Это не останавливает сам callback и его побочные эффекты. В обёртке важно завершать ветку ошибки через return, чтобы не выполнять дальнейшую обработку. Если нужно запретить повторную работу целиком, добавляют отдельную защиту вызова, а не полагаются только на Promise.