I am trying to check if current exchange exists or not, if it exists I want to deleted and create again. When I do not use try catch
and try to delete not existed exchange I lost connection and get an error, how to create an index if does not exist after I try to delete?
export const resetDelayedExchange = (connection ,expectedMessages) => async (message, type) => {
const exchange = getExchange(type)
const channel = await connection.createChannel()
const cleanupDelayedExchange = `${exchange}.${delayedExchange}`
const restoreOnFailure = e => {
channel.assertExchange(cleanupDelayedExchange, delayedExchangeType, {durable: true, arguments: {[delayedMessageType]: 'direct'}})
channel.bindExchange(exchange, cleanupDelayedExchange)
logger.silly(`publishing message to ${cleanupDelayedExchange}`)
channel.publish(cleanupDelayedExchange, '', expectedMessages[type].encode(message).finish(), headerArg)
}
try {
channel.deleteExchange(cleanupDelayedExchange, {ifUnused : false})
connection.on('error', restoreOnFailure)
} catch (error) {
restoreOnFailure(error)
}
}