Я работаю над проектом, который использует стороннюю библиотеку, которую нельзя поменять. Он по существу выходит на источник URL и возвращает данные. Это не возвращение обещание. Он передает возвращаемые данные обратно на анонимный обратный вызов ... Не тот, который вы передаете функции.Преобразование обратного вызова в RX.Observable в Nodejs
Документация является пятнистой, но вот как они инструктируют вас использовать свою библиотеку.
third-party(URLsource, selector, scope)(function(err, data){ /* work with data array here*/ });
В настоящее время код является беспорядком. Это отчасти заключается в обратном вызове ада и чрезмерном использовании обещаний.
Трубопроводы данных через наблюдаемые могли бы упростить и очистить этот проект много. Но я все еще изучаю RXjs и как работает наблюдаемое.
Я думал, что эта проблема будет хорошим кандидатом для:
let datapull = Rx.Observable.bindNodeCallback(third-party);
let result = datapull(URLsource, selector, scope);
result.subscribe(result => console.log(result), e => console.log("Error: " + e)
Однако, это не работает, потому что последний параметр:
third-party(URLsource, selector, scope)
не функцию обратного вызова.
Как перенести результаты этой сторонней функции в RX Observable?
Тьфу ... это так сейчас очевидно. Спасибо за помощь! – calbear47