blob: 171778e92772ab913c2f08acb7a8d583c94413f9 [file] [log] [blame]
#!/usr/bin/env node
'use strict';
// NB this requires the module 'co':
// npm install co
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, Buffer.from(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);
});