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)我已将函数外部的变量声明为全局范围
请帮助我
答案 0 :(得分:2)
尽管您在函数内使用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);
})
如果您在异步函数中具有上述代码,则也可以将accounts
与await一起使用
await accounts()
答案 1 :(得分:0)
您的accounts
函数是异步的。因此,在帐户有时间完成之前,最后一行的console.log()首先被调用。这就是为什么它显示未定义的原因。您必须等待accounts
完成后才能打印,方法是在通话前添加“等待”。
var accountA;
var accountB;
accounts = async () => {
accountA = await server.loadAccount(Apub)
console.log(accountA)
accountB = await (server.loadAccount(Bpub))
}
await accounts()
console.log(accountA);