当我使用像
这样的东西时if(asynchronous.get()){...}
并且ansynchronous.get()
是一个异步函数,我想知道这是如何工作的,因为if语句没有测试任何东西,除非函数返回一个值。不知怎的,我在我的代码中有这个并且它有效,所以任何人都可以解释为什么它有效,如果我应该改变它。
编辑:我假设我的函数是异步的,这是错误的,所以现在一切都已经回答了。
答案 0 :(得分:3)
if语句只检查表达式是否计算为真值。似乎函数返回一个promise,它是一个函数对象,它是一个真正的值。
该函数将被执行,但您将无法以这种方式处理结果,并且if语句永远不会被评估为false。
您需要等待函数解析值,然后检查值:
asynchronous.get().then(val => {
if (val) {...}
})