rxjs和typescript返回没有参数的函数

时间:2019-05-30 06:22:54

标签: typescript rxjs rxjs6

我正在尝试将rxjs与amqplib结合使用,以将收到的来自Rabbit的消息转换为消息流:

const connection = await amqplib.connect(constr);
const channel = await connection.createChannel();
const callBack: any = bindCallback(channel.consume);
const observalble = callBack("queue");

问题是从bindCallback返回的callBack是没有参数的方法。 这是怎么了?

我依赖于示例:

// From a callback (last argument is a callback)
// fs.exists = (path, cb(exists))
var exists = Rx.Observable.bindCallback(fs.exists);
exists('file.txt').subscribe(exists => console.log('Does file exist?', exists));

形成rxjs文档...

请帮助

im使用rxjs 6.5.2 打字稿3.4.5 amqplib 0.5.2

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题。

const connection = await amqplib.connect(constr);
const channel = bindCallback(connection.createChannel);
channel().subscribe(args => {
    const err = args[0]
    const ch = args[1]
    if(err) throw err

    const ch_observable = bindCallback(ch.consume)
    ch_observable("queue").subscribe(msg => {
        console.log(msg)
    })

})