Как асинхронно импортировать экспортируемую функцию модуля с динамическим импортом и вызывать ее? - PullRequest
0 голосов
/ 02 июня 2018

в функции асинхронного обратного вызова обещания

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

Я пытался

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

получил:

[ts] Невозможно вызвать выражение, тип которого отсутствуетподпись вызова.Тип 'never' не имеет совместимых подписей вызовов.

тогда я попытался:

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

получил:

[ts] Тип 'typeof import ("<path-to-npm-module>' не назначаетсятип 'Функция'. Свойство 'apply' отсутствует в типе 'typeof import ("<path-to-npm-module>'.

1 Ответ

0 голосов
/ 13 января 2019

Я просто пытался проделать то же самое и пришел к выводу, что объект в возвращаемом Promise может быть не самой функцией, а объектом со свойством с именем default, значением которого является нужная вам функция.

Пока я пишу это, я все еще не до конца понимаю все нюансы экспорта, но этот код работал для меня:

    import('moduleWithADefaultExportOfAFunction')
        .then(theImport => theImport.default());
...