首页 > 解决方案 > JS 中异步的一个线性结果?

问题描述

我想将异步 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'),
}

标签: javascriptobjectimportasync-awaitiife

解决方案


感谢@JonasWilms

最后我这样做了:

const myObj = {};

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

这按预期工作,我myObjmyattrib属性作为myDep.


推荐阅读