使用 Await 读取异步对象集

Read Async Object Set Using Await

全局对象的 key/value (thing) 在异步函数 setter(); 中使用 await 设置。如何在另一个异步函数 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;
})();

你应该等待 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