使用 Await 读取异步对象集
Posted
技术标签:
【中文标题】使用 Await 读取异步对象集【英文标题】:Read Async Object Set Using Await 【发布时间】:2020-02-11 11:53:07 【问题描述】:全局对象的键/值 (thing
) 使用 await
在异步函数 setter();
中设置。如何在另一个异步函数getter();
中异步读取thing
的值?
我收到未定义的错误,因为 getter();
在 setter();
中的 await
完成之前运行。
let obj = ;
async function af()
return 1;
(async function setter ()
obj.thing = await af();
)();
(async function getter ()
let thing = obj.thing;
)();
【问题讨论】:
【参考方案1】:您应该等待 setter 函数完成,您会遇到这种方法的竞争条件问题。
一个如何工作的例子是:
var obj = ;
async function af()
return 1;
(async function()
await (async function setter ()
obj.thing = await af();
)();
await (async function getter ()
let thing = obj.thing;
)();
console.log(obj.thing);
)();
在函数结束时,它应该记录 af 函数返回的 1
【讨论】:
以上是关于使用 Await 读取异步对象集的主要内容,如果未能解决你的问题,请参考以下文章