Node+PhantomJS |在page.evaluate之后返回
Node + PhantomJS | Return after page.evaluate
我有一个NodeJS+Phantom项目,我有以下功能:
function isLogged(page) {
var logged = false;
page.evaluate(function() {
return document.querySelector(".login") != null;
}, function(bl) {
console.log("1");
logged = bl;
});
console.log("2");
return logged;
}
但此函数在"1"之前打印"2"。我该怎么修?
您正在使用node.js和PhantomJS之间的桥梁。PhantomJS作为一个单独的进程运行,这意味着每个通信都是异步完成的。不能return
异步计算的结果。简单的解决方案是使用回调函数:
function isLogged(page, callback) {
page.evaluate(function() {
return !!document.querySelector(".login");
}, callback);
}
并像这样使用:
isLogged(page, function(res){
console.log(res);
});
这不会return
任何内容。
相关文章:
- 在刚刚调用的append函数之后,jquery.height()不会返回实际值
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 在for循环之后返回一个值
- 在主干视图中的每个方法之后是否需要“返回此内容”
- 使用Jquery和PHP在POST Ajax之后返回(一个空字符串)
- 可以'在使用Javascript/AjaxMVC之后,不会返回到任何视图
- 在异步内部函数返回 [UI-路由器和 HTML 服务] 之后返回外部 fn
- JavaScript 正则表达式,返回模式之前和之后的所有内容
- For 循环成功地将元素添加到数组中,但在之后返回空数组
- 在 AJAX 回调之后,onblur 会返回到原始(或更新)字段
- 无法到达“之后的”返回“交战
- jqGrid “getGridParam” 在 “addRowData” 之后返回 undefined
- 在返回表达式之后定义函数的使用场景或优点是什么
- 类在JQuery removeClass之后返回
- JQuery Mobile Slider在事件之后返回空值
- 在.remove()和.append()之后返回我的事件按钮
- 是否有一种方法可以使函数在setTimeout之后返回
- 如何在onclickJS函数之后返回上一个文本
- Node+PhantomJS |在page.evaluate之后返回
- 在javascript中的一系列函数之后返回