Я использую phantomjs с формулой для правильного обмена страницами для одностраничного приложения. Вот некоторый пример кода:Обещание с res.send();
if (isbot(req.headers['user-agent'])){
var url= req.protocol+'://'+req.get('host')+ req.originalUrl
phridge.spawn()
.then(function (phantom) {
var page = phantom.createPage();
return page.run(url, function (url, resolve, reject) {
var page = this;
page.open(url, function (status) {
// handle page after load
});
})
.then(function (contnt) {
res.send(contnt);
})
.then(phridge.disposeAll());
.catch(function (err) {
console.error(err.stack);
})
}
else {
next();
}
Вопрос заключается в том - как механик res.send()
работает с обещанием? Будет phridge.disposeAll()
выполнено?
Эта строка выглядит неправильно - '.then (phridge.disposeAll());' does 'phridge.disposeAll()' возвращает функцию? потому что аргументы '.then' должны быть функцией ... возможно, вы хотели сделать' .then (phridge.disposeAll), ' –
' phridge.disposeAll() 'будет выполнен. 'res.send()' работает точно так же, как в синхронной функции –