У меня есть асинхронный процесс кошмар.js, который использует управление потоком vo.js с генератором:
vo(function *(url) {
return yield request.get(url);
})('http://lapwinglabs.com', function(err, res) {
// ...
})
Это должно вернуть обещание Hapi (v.13.0.0) с интерфейсом reply()
. Я видел примеры с Bluebird и другими библиотеками обещаний, например: handler">Как ответить из-за пределов обработчика маршрута hapi.js, но возникли проблемы с адаптацией vo.js. Может ли кто-нибудь привести пример этого?
сервер.js
server.route({
method: 'GET',
path:'/overview',
handler: function (request, reply) {
let crawl = scrape.doCrawl({"user": USERNAME, "pass": PASSWORD});
reply( ... ).code( 200 );
}
});
скрейп.js
module.exports = {
DoCrawl: function(credentials) {
var Nightmare = require('nightmare');
var vo = require('vo');
vo(function *(credentials) {
var nightmare = Nightmare();
var result = yield nightmare
.goto("www.example.com/login")
...
yield nightmare.end();
return result
})(credentials, function(err, res) {
if (err) return console.log(err);
return res
})
}
};