gpt4 book ai didi

javascript - 如何在另一个函数中检索 horseman.exists 的值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:50 24 4
gpt4 key购买 nike

我只是有一个关于如何让 horseman.exists 的 bool 值显示在 horseFunction 函数中的问题。当我在 horseFunction() 中打印值时,它会打印 promise 对象,但在主 horseman 链中,它会打印 bool 值。

谢谢!

var Horseman = require("/usr/local/lib/node_modules/node-horseman");
var horseman = new Horseman();

function horseFunction(){
console.log("inside horseFunction");
var hasButton = horseman.exists("input[name='btnK']");
console.log(hasButton) //prints the promise
return hasButton;
}


horseman
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0")
.open("https://www.google.com/")
.waitForNextPage()
.log("just opened google")
.then( horseFunction )
.log() //prints the result of horseman.exists("input[name='btnK']")
.finally(function(){
console.log("Finish!")
horseman.close();
});

//};

最佳答案

你正在做两件不同的事情......

// in horseFunction()
console.log(hasButton) // logs a promise

...和...

// in the promise chain
.then(horseFunction).log() // logs the data that the promise delivers

所以,很明显

  • hasButton 是一个 promise ,而不是 bool 值
  • .log()new Horseman() 返回的对象提供的非标准“检查”方法。 在一般的 Promise 库(如 bluebird.js、when.js 或 javascript 的原生 Promise 中)找不到 .log()

尝试在 horseFunction() 中执行与 promise 链中相同的操作:

function horseFunction(){
console.log("inside horseFunction");
var hasButton = horseman.exists("input[name='btnK']");
hasButton.log(); // <<<<<< should print a boolean
return hasButton;
}

很可能,.log() 是透明的,因此您也可以尝试:

function horseFunction() {
console.log("inside horseFunction");
return horseman.exists("input[name='btnK']").log();
}

关于javascript - 如何在另一个函数中检索 horseman.exists 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33490745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com