const sub = Stream.async<Rabbit.AsyncMessage>(emit => {
return Effect.async<Rabbit.Consumer>(resume => {
const consumer = rabbit.createConsumer(
settings,
msg => {
console.log('received message', msg);
return emit.single(msg);
}
);
consumer.on('ready', () => {
console.log('ready');
resume(Effect.succeed(consumer));
});
})
});
yield* sub.pipe(Stream.runDrain, Effect.fork);
yield* Effect.promise(() =>
pub.send(envelope, { id: 1, name: 'Alan Turing' })
);
const sub = Stream.async<Rabbit.AsyncMessage>(emit => {
return Effect.async<Rabbit.Consumer>(resume => {
const consumer = rabbit.createConsumer(
settings,
msg => {
console.log('received message', msg);
return emit.single(msg);
}
);
consumer.on('ready', () => {
console.log('ready');
resume(Effect.succeed(consumer));
});
})
});
yield* sub.pipe(Stream.runDrain, Effect.fork);
yield* Effect.promise(() =>
pub.send(envelope, { id: 1, name: 'Alan Turing' })
);