首页 > 解决方案 > 使用 await 和 async 承诺作用域

问题描述

      var accountA;
       var  accountB;
      accounts = async () => {
        accountA = await server.loadAccount(Apub)

        console.log(accountA)
        accountB = await (server.loadAccount(Bpub))
    }

  accounts()

  console.log(accountA);

1) Apub 是我已经声明的公钥

2)当我打印

账户A

在函数内部,它向我显示来自 accountA 的完整详细信息

3)当我在函数之外执行console.log时,输出是

不明确的

4)我已将函数外部的变量声明为全局范围

请帮我

标签: javascriptnode.jsasync-awaites6-promise

解决方案


尽管您await在函数内部使用,但您不会等到它在调用时得到响应,accounts这是一个异步函数

var accountA;
var  accountB;
accounts = async () => {
    accountA = await server.loadAccount(Apub)

    console.log(accountA)
    accountB = await (server.loadAccount(Bpub))
}

accounts().then(() => {
    console.log(accountA);
})

如果您在异步函数中有上述代码,那么您也可以使用accountsawait

await accounts()

推荐阅读