为什么未通过bindNodeCallback()触发Node RxJS .subscribe()?

时间:2019-04-03 03:13:40

标签: node.js rxjs observers

我正在学习如何将RxJS与Node一起使用。查看示例(12 (old)3),到目前为止,我无法在.subscribe()中触发“结果”或“错误”方法:

const fs = require('fs');
const { bindNodeCallback } = require('rxjs');

const configPath = './config/config.yml';
const configEncoding = 'utf8';

// also tried with bindCallback()...
const readFileSync = bindNodeCallback(fs.readFileSync);

readFileSync(configPath, configEncoding)
.subscribe(
  results => console.log(results), 
  err => console.error(err)
);

// temporary, exits immediately otherwise
// hmmm clue to the above not being correct?...
setInterval(() => { let keep = 'going'; }, 1000);

我正在使用"rxjs": "^6.4.0",节点v10.14.2。

如何更改此代码,以便观察者观察配置文件的加载?

1 个答案:

答案 0 :(得分:1)

您应该使用readFile而不是readFileSync,因为readFileSync不适用于回调。

https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options