小编kuf*_*udo的帖子

new Promise() 与 (async () => {})()

区块 1:

const promise = new Promise((resolve) => {
  setTimeout(resolve, 100);
});
Run Code Online (Sandbox Code Playgroud)

区块 2:

const promise = (async () => {
  await new Promise(resolve => {
    setTimeout(resolve, 100);
  });
})();
Run Code Online (Sandbox Code Playgroud)

上面两个块等价吗?有什么值得注意的差异吗?

我知道这是一个精心设计的示例,这里的块 2 没有太多目的。但我遇到的情况是,我想创建并存储对 Promise 的引用,但 Promise 执行器函数需要使用 wait 来获取一些数据。但宣告new Promise(async (resolve) => {});被认为是一种反模式。在这种情况下,块 2 会更好吗?

更新:提供一个更具体的例子来说明我正在尝试做的事情:

  export async function getData(request) {
    // De-dupe fetches for the same request and return existing promise.
    if (map.has(JSON.stringify(request))) {
      return map.get(JSON.stringify(request));
    }

    const thePromise = (async () => {
      const [foo, …
Run Code Online (Sandbox Code Playgroud)

javascript promise async-await iife

5
推荐指数
1
解决办法
3246
查看次数

标签 统计

async-await ×1

iife ×1

javascript ×1

promise ×1