我们如何在phantomjs中使用evaluateAsync

时间:2014-03-18 09:01:26

标签: javascript phantomjs

evaluateAsync的用法是什么,当我们必须使用此函数时,使用此函数有什么好处。 在下面我们看到了一个差documentation

var webPage = require('webpage');
var page = webPage.create();
// @TODO: Finish page.evaluateJavaScript example.

任何机构都可以在phantomjs中显示evaluateAsync的使用示例

1 个答案:

答案 0 :(得分:10)

此功能允许您执行任何JavaScript代码,例如evaluate API函数。 但它会异步评估您的代码。这意味着:

  • 不会阻止当前执行上下文。
  • 不会返回任何结果。

假设你想要执行一些长期运行的JavaScript代码,但你对它的结果不感兴趣。如果您将使用evaluate,则将阻止您当前的执行上下文。

evaluateAsync的文档有点不对劲。 evaluateAsync的正确签名是: evaluateAsync(function, ms, args),其中:

  • 功能 - 评估功能
  • ms - 执行前等待的时间
  • args - 函数参数

示例:

evaluateAsync(function() {
   console.log('Hi! I\'m evaluateAsync call!');
}, 1000);

在现实世界中使用

  • 您想要捕获一些异步事件。
  • 单元测试! AFAIK,PhantomJS跑步者使用evaluateAsync来进行单元测试。