Я читаю о собственные модули в React-Native и Android. В документации различаются
Мне трудно понять разницу между ними тремя. В чем основные отличия и когда что используется?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Обратный вызов - это функция, которую вы передаете другой функции, которая затем вызывает ее при выполнении некоторого асинхронного действия:
somethingAsync(function callback(result) { /*...*/ });
Вы увидите этот шаблон довольно часто, поскольку все, что связано с ilelse, основано на обратных вызовах. Однако, если у вас много обратных вызовов, код становится трудно читать и поддерживать, особенно при работе с циклами. Для этого были введены обещания, которые обертывают функцию обратного вызова и позволяют прикреплять обратные вызовы к обещанию. Это позволяет создать красивую цепочку:
const promise = new Promise(somethingAsync);
promise.then(function result() { /*...*/ });
Обратите внимание, что обещание выполняется только один раз, а обратные вызовы могут вызываться несколько раз.
События на самом деле не связаны с обещаниями, они позволяют вам прикрепить обратный вызов к объекту, который будет вызываться, когда что-то произойдет, например нажимается кнопка:
button.onclick = function(event) { /*...*/ }
@ m.wojcik нет, вы где-то взяли документацию по одному специальному обратному вызову и применили его ко всем обратным вызовам. [1, 2, 3].forEach(cb), например, вызовет обратный вызов cb три раза.
Как можно вызывать обратный вызов несколько раз? Если вы попытаетесь вызвать метод из собственной части, которая возвращает несколько обратных вызовов, вы получите ошибку. Как говорится в документации: «Собственный модуль должен вызывать свой обратный вызов только один раз. Однако он может сохранить обратный вызов и вызвать его позже». Так же, как и с обещаниями, он разрешится один раз, но позже вы можете вызвать его снова. Я прав? Значит, это означает, что обещания, поскольку общение между native и react для более чистого кода?