【问题标题】:One liner result of Async in JS?JS 中异步的一个线性结果?
【发布时间】:2020-05-11 07:59:48
【问题描述】:

我想将异步 IIFE 函数的结果分配给对象属性。

类似:

const myObj = {
    dep: (async () => { await import('./myDep'); return myDep;})(),
}

但我得到的不是价值,而是承诺。

目前我不得不使用这个丑陋的:

let myObj = {};

(async () => {
    await import('./myDep');
    return myDep;
    })().then((myDep) => {                                                            
        myObj = {
            dep: myDep
        }
    }
});

对于仍处于 ECMAScript 提案状态的顶级异步,我相信这很简单:

const myObj = {
    dep: await import('./myDep'),
}

【问题讨论】:

  • 把你的脚本放到async函数中,然后使用你最后的方法
  • import("./myDep").then(() => myObj.dep = myDep); ?

标签: javascript object import async-await iife


【解决方案1】:

感谢@JonasWilms

最后我做到了:

const myObj = {};

import("./myDep").then(m => myObj.myattrib = m.namedexport);

这按预期工作,我将 myObjmyattrib 属性作为 myDep 的命名导出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多