代码之家  ›  专栏  ›  技术社区  ›  Pace

可以承诺在下线前执行

  •  2
  • Pace  · 技术社区  · 6 年前

    我认为现在对我来说思考还太早,但是如果我有这样的事情:

    const promise = someAsyncFunctionReturningAPromise().then(() => {
        cache.delete(promiseKey, promise); // LINE A
    });
    cache.set(promiseKey, promise); // LINE B
    

    我是否需要担心A线在B线之前运行,或者可以保证B线先运行? cache.set

    1 回复  |  直到 6 年前
        1
  •  3
  •   Community CDub    4 年前

    then 总是异步执行。从 Mozilla docs

    然后调用处理程序函数(oncompleted或onRejected) 异步

    或者直接从 Promise spec

    如果回调始终被称为异步(即使已经解析了承诺),则 set delete 在回调中调用。