NightmareJS. Затем выполняется до завершения .evaluate - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь заставить nightmare js делать .evaluate, затем после того, как оно возвращает значение, выполнить .then(function(varFromEvaluate){}), но функция .then выполняется до того, как оценка будет выполнена.

Это также делает егопоэтому я не могу получить значение, которое возвращает оценка, даже если я делаю .wait вместо .evaluate, по какой-то причине он просто возвращает неопределенное значение.

Вот мой код:

nightmare
 .evaluate(function(){
     return true
 }).then(function(isTrue){
     console.log(isTrue) //result is false
 })

1 Ответ

0 голосов
/ 28 сентября 2018

Проблема никогда не в функции .evaluate.

Мы не можем понять, что здесь на самом деле не так, потому что фактический код внутри функции .evaluate не является общим.Однажды попробовав с базовым примером, он работает без нареканий.Проверьте исходный код.

Код для проверки этого,

const Nightmare = require("nightmare");
const nightmare = Nightmare({ show: true });
nightmare
  .goto("about:blank")
  .evaluate(() => true)
  .then(isTrue => console.log({ isTrue }));

Результат: enter image description here

...