1

在 Promise 的异步回调函数中

promise.then(async callbackResultValue => { //here })

我试过了

const browserd = await import('browser-detect');
if (typeof browserd === 'function') { 
    const browserinfo = browserd();
}

得到:

[ts] 无法调用类型缺少调用签名的表达式。类型“从不”没有兼容的调用签名。

然后我尝试了:

const browserd:Function = await import('browser-detect');

得到:

[ts] 类型 'typeof import(" <path-to-npm-module>' 不可分配给类型 'Function'。类型 'typeof import(" ' 中缺少属性 'apply' <path-to-npm-module>

4

1 回答 1

2

我只是在同一件事上苦苦挣扎,然后发现返回的 Promise 中的对象可能不是函数本身,而是一个具有称为属性的对象,default其值是您想要的函数。

在我写这篇文章时,我仍然没有完全理解导出的所有细微差别,但这段代码对我有用:

    import('moduleWithADefaultExportOfAFunction')
        .then(theImport => theImport.default());
于 2019-01-12T21:06:24.287 回答