问题描述
我正在使用async / await模型,并使用NodeJS中的Rascal lib实现了订阅消息的订阅。我面临的问题是,我正在从订阅中获取内容,但无法将内容发送回被调用方方法。
module.exports = class RabbitmqClient {
constructor(options) {
this.options = options
}
async subscribe(broker,subscription) {
try {
logger.info(`Subscribing Messages for : ${subscription}`);
const result = await broker.subscribe(subscription);
await result.on('message',(message,content,ackOrNack) => {
//this logger is getting logged at very end of the flow.
logger.info(content)
return Promise.resolve(content);
}).on('error',(error) => {
var errMessage = "error occured during subscription process.."+error
logger.error('Error is: ',errMessage);
throw error;
});
// Execution jumps here and not waiting for above result.on to get process rather return from here and getting empty results in callee method
logger.debug("Subscription process ended succesfully..");
} catch (err) {
logger.error(`Error while subscribing the message ${JSON.stringify(err)}`);
return Promise.reject(err);
}
}
}
var rabbitmqObj = new rabbitmqClient()
var result = await rabbitmqObj.subscribe(connection,subscribe);
logger.info("result found is: "+JSON.stringify(result));
结果始终是不确定的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)