为什么if(asynchronous.get())工作并且可以这样使用它

时间:2016-11-10 09:59:09

标签: javascript

当我使用像

这样的东西时
if(asynchronous.get()){...}

并且ansynchronous.get()是一个异步函数,我想知道这是如何工作的,因为if语句没有测试任何东西,除非函数返回一个值。不知怎的,我在我的代码中有这个并且它有效,所以任何人都可以解释为什么它有效,如果我应该改变它。

编辑:我假设我的函数是异步的,这是错误的,所以现在一切都已经回答了。

1 个答案:

答案 0 :(得分:3)

if语句只检查表达式是否计算为真值。似乎函数返回一个promise,它是一个函数对象,它是一个真正的值。

该函数将被执行,但您将无法以这种方式处理结果,并且if语句永远不会被评估为false。

您需要等待函数解析值,然后检查值:

asynchronous.get().then(val => {
    if (val) {...}
})