我无法通过回调函数创建新的Observable对象,例如将glob
函数转换为Observable流:
const stream$ = fromCallback(() => glob('src/**/*.ts'));
const fromCallback = (cbWrapper) => {
const cb = cbWrapper();
const args = cb.arguments;
return Observable.create(observer => {
args.push((err, data) => {
if(err) {
observer.error(err);
} else {
observer.next(data);
}
observer.complete();
});
cb.call(null, args);
};
这或多或少是我想要做的-创建一个fromCallback
函数,该函数在包装器中接受我的函数,添加一个新的参数(它是回调处理程序),并根据结果调用观察者。但这不起作用-由于某些原因,cbWrapper()
总是返回true
。
这是怎么了?有更好的解决方案来解决这个问题吗?