Я не могу создать новый объект 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
.
Что здесь не так? Есть ли лучшее решение для решения этой проблемы?