typescript - rxjs 和 typescript 返回一个没有参数的函数
问题描述
我正在尝试将 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 文档...
请帮忙
我正在使用 rxjs 6.5.2 typescript 3.4.5 amqplib 0.5.2
解决方案
这应该可以解决问题。
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)
})
})
推荐阅读
- javascript - 为什么文档没有在 Electron renderer.js 文件中定义?
- javascript - 如何通过编写javascript扩展通过代码触发onclick功能?
- mongodb - 是否有一个用户友好的界面可以输入 MongoDB 查询?
- c - 将读取的字符串与一组随机字母进行比较的程序将在至少七个字母之前找到匹配项
- facebook - 已经拥有“pages_messaging”权限,但是一旦调用了订阅端点。它说我需要请求“pages_messaging”
- android - 使用应用操作发布 android 应用时出错
- sql-server - 在数据透视表中显示 ID 的另一种方法
- python - SageMaker 实验商店
- javascript - MongoDB - 如何按两个字段和字段的总和值分组?
- parsing - 解析 cbor 流