Javascript 如何检查异步函数返回的内容

Javascript 如何检查异步函数返回的内容,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我知道这些问题,但(可能是因为我是一个绝对的JS初学者)我无法实现这些想法 使用,我可以使此示例生效: let hello = async () => { return "Hello" }; hello().then((value) => console.log(value)) 它只输出Hello。但是,我希望我的代码检查函数hello稍后返回的内容。大概是这样的: if ( /* what comes here? */) { console.log(&

我知道这些问题,但(可能是因为我是一个绝对的JS初学者)我无法实现这些想法

使用,我可以使此示例生效:

let hello = async () => { return "Hello" };
hello().then((value) => console.log(value))
它只输出
Hello
。但是,我希望我的代码检查函数
hello
稍后返回的内容。大概是这样的:

if ( /* what comes here? */) {
    console.log("Hello was said")
}
let hello = async () => { return "Hello" };

async function foobar() {
  if(await hello() == 'Hello')
    console.log('yay')
}

foobar()

我怎么能这样做?如何构造这个if语句来检查
hello
是否确实返回了“hello”?

这取决于“以后”的含义

  • 您可以将其保存为常规变量并导出(这不是异步等待的问题)
  • 如果你想以一种安全的方式来做,那么“以后”就是某天,你需要把它发送给数据库

  • if语句可以包装在异步函数中,如下所示:

    if ( /* what comes here? */) {
        console.log("Hello was said")
    }
    
    let hello = async () => { return "Hello" };
    
    async function foobar() {
      if(await hello() == 'Hello')
        console.log('yay')
    }
    
    foobar()
    
    wait
    只能在异步函数中使用

    承诺继续以回报的形式给你承诺,但是wait可以在异步函数中计算承诺。

    hello()。然后((value)=>…)
    基本上意味着如果承诺(wait)实现了,它应该调用
    函数(value=){}
    。。。所以

    hello().then((value) => {
        if(value == 'Hello'){
            console.log("Hello was said");
        }
    });
    

    如果你真的是一个“绝对初学者”,也许从
    async
    wait
    开始并不是最好的主意。是的,这是一个很好的观点。试图实现一些需要它的东西。特别是:。我认为这个问题是相当具体的,我试图提出一个更广泛适用的例子,它再现了我在具体案例中遇到的相同问题,那就是我如何在上面的文章中提到的页面上结束;如果你知道一个避免这些话题的解决方法,那也是很有帮助的。还有什么不起作用?