本文整理匯總了TypeScript中amqplib.Channel.consume方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Channel.consume方法的具體用法?TypeScript Channel.consume怎麽用?TypeScript Channel.consume使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類amqplib.Channel
的用法示例。
在下文中一共展示了Channel.consume方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: consumeChannel
private consumeChannel(channel: Channel): void {
channel.consume(
REPLY_QUEUE,
(msg: Message) => this.responseEmitter.emit(msg.properties.correlationId, msg.content),
{noAck: true}
);
}
示例2: consumeChannel
private consumeChannel(
channel: Channel,
actionFunction: (message: any, responseCallback: Function) => {}
): void {
channel.consume(
this.queueName,
(msg: Message) => {
const decodedMessage = msg.content.toString();
// Handle Received Message
if (this.verboseOn) {
console.log(`RECEIVED FROM BROKER: ${decodedMessage}`);
}
actionFunction(JSON.parse(decodedMessage), (response: any, error?: Error) => {
if (!response && !error) {
error = new Error('Could not complete request.');
}
if (typeof response !== 'object') {
error = new Error('Response must be a JSON object.');
}
if (error) {
// Failed to handle message
channel.sendToQueue(
msg.properties.replyTo,
new Buffer(JSON.stringify(error)),
{ correlationId: msg.properties.correlationId }
);
} else {
// Send back response
const outgoing: string = JSON.stringify(response);
if (this.verboseOn) {
console.log(`SENDING TO BROKER: ${outgoing}`);
}
channel.sendToQueue(
msg.properties.replyTo,
new Buffer(outgoing),
{ correlationId: msg.properties.correlationId }
);
}
// Send Ack
channel.ack(msg);
});
}
);
}