Frikoppla din kod med events
ON(name, fn) registrerar en lyssnare, EMIT(name, a, b, c...) anropar varje lyssnare med de angivna argumenten, ONCE(name, fn) lyssnar bara på den första emit och OFF(name, fn) tar bort lyssnare. Events sker inom processen och är synkrona. Använd dem för att låta en funktion reagera på något (en order har betalats) utan att koden som orsakar det känner till den.
MAIN.audit = [];
ON('order.paid', function(order) {
MAIN.audit.push('paid ' + order.id);
});
ONCE('order.first', function(order) {
MAIN.audit.push('first ' + order.id);
});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);
}