Pour passer une fonction en tant que paramètre sans qu'elle s'exécute immédiatement, vous pouvez simplement passer la référence de la fonction comme argument, sans les parenthèses. Dans votre exemple, vous devriez remplacer le code suivant :
addContact(entityId, refreshContactList());
par celui-ci :
addContact(entityId, refreshContactList);
Cela passera la référence de la fonction refreshContactList
en tant que paramètre à la fonction addContact
, plutôt que de l'appeler immédiatement.
Dans la fonction addContact
, vous pouvez ensuite appeler la fonction passée comme paramètre en utilisant l'opérateur de parenthèse () :
function addContact(entityId, callback) {
// faire quelque chose ici
// ...
// appel de la fonction passée en paramètre
callback();
}
Ici, la fonction callback
sera exécutée lorsque vous appelez callback()
. Vous pouvez également passer des arguments supplémentaires à la fonction callback
si nécessaire :
function addContact(entityId, callback, arg1, arg2) {
// faire quelque chose ici
// ...
// appel de la fonction passée en paramètre avec des arguments supplémentaires
callback(arg1, arg2);
}
En résumé, pour passer une fonction en paramètre en JavaScript sans qu'elle s'exécute immédiatement, vous pouvez simplement passer la référence de la fonction sans les parenthèses, puis l'appeler plus tard en utilisant l'opérateur de parenthèse () si nécessaire.