Αποσύζευξη του κώδικα με events
Το ON(name, fn) καταχωρίζει έναν ακροατή, το EMIT(name, a, b, c...) καλεί κάθε ακροατή με τα δοθέντα ορίσματα, το ONCE(name, fn) ακούει μόνο το πρώτο emit και το OFF(name, fn) αφαιρεί ακροατές. Τα events είναι εντός διεργασίας και σύγχρονα. Χρησιμοποιήστε τα για να αντιδρά μια λειτουργία σε κάτι (μια παραγγελία πληρώθηκε) χωρίς να τη γνωρίζει ο κώδικας που το προκαλεί.
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);
}