diff --git a/examples/tutorials/send_generators.js b/examples/tutorials/send_generators.js new file mode 100644 index 00000000..cc69e702 --- /dev/null +++ b/examples/tutorials/send_generators.js @@ -0,0 +1,40 @@ +#!/usr/bin/env node + +'use strict'; + +const co = require('co'); +const amqp = require('amqplib'); + +co(function* () { + // connection errors are handled in the co .catch handler + const conn = yield amqp.connect('amqp://localhost'); + + // try catch will throw any errors from the yielding the following promises to the co .catch handler + try { + const q = 'hello'; + const msg = 'Hello World!'; + + // use a confirm channel so we can check the message is sent OK. + const channel = yield conn.createConfirmChannel(); + + yield channel.assertQueue(q); + + channel.sendToQueue(q, new Buffer(msg)); + + // if message has been nacked, this will result in an error (rejected promise); + yield channel.waitForConfirms(); + + console.log(" [x] Sent '%s'", msg); + + channel.close(); + } + catch (e) { + throw e; + } + finally { + conn.close(); + } + +}).catch(err => { + console.warn('Error:', err); +}); \ No newline at end of file