J'ai un service appelé Progress
avec une méthode appelée confirmation
qui prend Progress.confirmation(message, accepted, rejected)
;Javascript/AngularJS - Attendre la fin d'un rappel
Jusqu'à présent, la fonction est:
if (!_.isString(message)) {
console.warn('No confirmation message was provided');
return false;
}
$rootScope.confirmation.message = message;
$('#confirmation').foundation('reveal', 'open');
// User confirms. If accepted() is provided, then run it
$rootScope.confirmationAccept = function() {
if (_.isFunction(accepted)) accepted();
$('#confirmation').foundation('reveal', 'close');
};
// User confirms. If rejected() is provided, then run it
$rootScope.confirmationReject = function() {
if (_.isFunction(rejected)) rejected();
$('#confirmation').foundation('reveal', 'close');
};
Les deux fonctions $rootScope.confirmationAccept()
et $rootScope.confirmationReject()
ne sont qu'une vérification/bouton d'annulation dans la confirmation révèlent page. Ce que je veux faire est d'attendre accepted()
/rejected()
pour exécuter avant que je ferme la page de révélation. Comment puis-je faire ceci?
Puisque je passe les deux fonctions, je ne peux pas vraiment compter que le codage de personne se rappellera d'utiliser un différé $q
, donc je ne pense pas que ce serait une option? En outre, je ne peux pas compter que les rappels retourneront une valeur, donc je ne peux pas attendre/regarder pour une valeur retournée.
Merci
Sont des appels à accepté() et rejeté() de nature asynchrone. Comment fournissent-ils des réponses en utilisant des rappels ou des promesses? – Chandermani