首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以更好地理解phantom.exit()

问以更好地理解phantom.exit()
EN

Stack Overflow用户
提问于 2017-05-13 14:08:24
回答 1查看 289关注 0票数 0

我有个密码:

代码语言:javascript
复制
var page = require('webpage').create();
page.open('http://phantomjs.org', function (status) {
    console.log('before IF');
    if (status !== 'success') {
        console.log('FAIL to load the address');
        phantom.exit();
    }
    console.log('LOADED');
    phantom.exit();
});

console.log(function(){
    return 'Im in function1';
}());
console.log(function(){
    return 'Im in function2';
}());
console.log(function(){
    return 'Im in function3';
}());

当我运行它时,我得到了下一个输出:

代码语言:javascript
复制
Im in function 
Im in function1 
Im in function2 
Im in function3 
before IF 
LOADED

为什么会发生这种事?我调用exit()函数,它应该关闭脚本(或者我缺少smth了吗?)这是官方的phantomJS文档:

使用指定的返回值退出程序。如果未指定返回值,则将其设置为0。

我会感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-13 14:42:51

我叫page.open(.)phantomJS 加载页面,同时继续执行脚本中的下一个函数。

不,它不会一次载入一页。它将向事件循环添加打开页面的任务。然后继续解析和执行脚本。只有在当前脚本结束并完成当前调用堆栈中的所有函数之后,JS才开始处理事件循环中的任务。因此,它在那里找到打开页面的任务并打开页面。此时,您的所有console.log语句都已执行。

打开页面后,它会添加要循环的任务,以运行传递到page.open()的回调。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43954100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档