【问题标题】:Can you use a function's returned value in a if statement?你可以在 if 语句中使用函数的返回值吗?
【发布时间】:2021-05-07 14:50:33
【问题描述】:

如何在不声明变量的情况下返回函数的结果? 如何在一行上返回函数的结果? if里面的函数如何返回结果?

你能在 if 语句中使用函数的返回值吗?

if ( await winthorglobal.SqlVerificarSeOPedidoExiste(PedidoNumeros).rows === PedidoNumeros )

结果:undefined

【问题讨论】:

  • 你能分享更多细节和代码吗?比如哪一行抛出错误等
  • 可能只是优先级不明确……? (await win....(PedidoNumeros)).rows…?

标签: javascript node.js typescript async-await nodes


【解决方案1】:

对代码稍作改动就可以达到预期的效果,关键是在周围加括号

(await winthorglobal.SqlVerificarSeOPedidoExiste(PedidoNumeros))

然后我们可以在结果上调用 .rows,例如

(await winthorglobal.SqlVerificarSeOPedidoExiste(PedidoNumeros)).rows

这应该按照你希望的方式运行。

如果您不在 await 语句周围放置方括号,您实际上是在尝试获取 Promise 上的 .rows 属性,这显然会返回 undefined

const winthorglobal = { 
   SqlVerificarSeOPedidoExiste(n) {
       return new Promise((resolve, reject) => setTimeout(() => resolve({ rows: n })), 100)
   } 
}

async function testIt() {
    const PedidoNumeros = 10;
    if ((await winthorglobal.SqlVerificarSeOPedidoExiste(PedidoNumeros)).rows === PedidoNumeros) {
       console.log("All good")
    }
}

testIt()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2011-04-02
    • 1970-01-01
    相关资源
    最近更新 更多