ForgeTotal.js 5
fr

Total.js 5

Découpler votre code avec des événements

Total.js 5 · total5@0.0.19 eventsarchitecture Exécutée avec Total.js 5

ON(name, fn) enregistre un écouteur, EMIT(name, a, b, c...) appelle chaque écouteur avec les arguments donnés, ONCE(name, fn) n'écoute que le premier emit et OFF(name, fn) retire des écouteurs. Les événements sont internes au processus et synchrones. Utilisez-les pour qu'une fonctionnalité réagisse à quelque chose (une commande a été payée) sans que le code qui le provoque la connaisse.

definitions/audit.js
MAIN.audit = [];

ON('order.paid', function(order) {
	MAIN.audit.push('paid ' + order.id);
});

ONCE('order.first', function(order) {
	MAIN.audit.push('first ' + order.id);
});
controllers/orders.js
exports.install = function() {
	ROUTE('POST /pay/{id}/', pay);
	ROUTE('GET /audit/', audit);
};

function pay($) {
	var order = { id: $.params.id };
	EMIT('order.first', order);
	EMIT('order.paid', order);
	$.json({ ok: true });
}

function audit($) {
	$.json(MAIN.audit);
}