我们如何在phantomjs中使用evaluateAsync

MOB*_*MOB 6 javascript phantomjs

evaluateAsync我们必须使用此功能的用途是什么以及使用此功能有什么好处.在下面我们看到一个糟糕的文档:

var webPage = require('webpage');
var page = webPage.create();
// @TODO: Finish page.evaluateJavaScript example.
Run Code Online (Sandbox Code Playgroud)

任何身体都可以显示evaluateAsyncphantomjs 的使用示例

小智 10

此函数允许您执行任何JavaScript代码,如evaluateAPI函数.但它会异步评估您的代码.它的意思是:

  • 当前的执行上下文不会被阻止.
  • 它不会返回任何结果.

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

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

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

例:

evaluateAsync(function() {
   console.log('Hi! I\'m evaluateAsync call!');
}, 1000);
Run Code Online (Sandbox Code Playgroud)

在现实世界中使用:

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