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

时间:2015-11-03 03:09:42

标签: javascript node.js phantomjs promise

我有一个关于如何获取horseman.exists的布尔值以显示在函数horseFunction中的问题。当我在horseFunction()中打印值时,它打印了promise对象,但是在主骑士链中,它打印出布尔值。

谢谢!

    ( teams.status = 'Completed' OR ISNULL(teams.status,'') = '')

1 个答案:

答案 0 :(得分:0)

你正在做两件事......

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

......和......

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

所以,很清楚

  • hasButton是一个承诺,而不是一个布尔
  • .log()非标准"检查" new Horseman()返回的对象提供的方法。 您无法在一般承诺的库中找到.log(),例如bluebird.js,when.js或javascript的原生承诺。

尝试在horseFunction()和承诺链中做同样的事情:

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();
}