dynamic synchronous import

Matthew Robb matthewwrobb at gmail.com
Sun Sep 28 10:27:42 PDT 2014


Also you CAN potentially do something like this eventually:
```
(async function() {
    var myMod = await System.import("my-mod");
})()
```


- Matthew Robb

On Sun, Sep 28, 2014 at 11:45 AM, Guy Bedford <guybedford at gmail.com> wrote:

> On 28 September 2014 07:01, John Lenz <concavelenz at gmail.com> wrote:
>
>> I would like to see some way to preload everything, and be able to
>> retrieve them synchronously, something like:
>>
>>   System.loader.addNoAsync('...');  // throw if all imports aren't
>> available already
>>
>> So that the script could be used during initial render. I understand that
>> this would mean that the module would need to be parsed and executed
>> synchronously. Forcing folks to never use any module for code that needs to
>> be inline seems like a bad turn.
>>
>
> I'm not sure what rendering behaviour is planned for <script
> type="module">, but I hope there would be a way to indicate when it should
> and shouldn't block rendering of the HTML page / HTML import.
>
> In terms of preloading, there are complete ways to do this through custom
> extensions.
>
>
>>
>> On Fri, Sep 26, 2014 at 1:44 PM, John Barton <johnjbarton at google.com>
>> wrote:
>>
>>> Theoretically you can use System.normalize() and System.get() to lookup
>>> a module by name synchronously. The normalize feature requires a referrer
>>> or address.
>>>
>>> Since browsers are determined to eliminate synchronous scripts, you may
>>> as well deal with the asynchronous System.import() and obnoxious promises
>>> stuff now and save yourself some pain later.
>>>
>>> jjb
>>>
>>> On Fri, Sep 26, 2014 at 9:40 AM, Konstantin Ikonnikov <
>>> ikokostya at gmail.com> wrote:
>>>
>>>> I don't want load module using http request. In my case module already
>>>> defined and I want import it later when I get its name:
>>>>
>>>> ```js
>>>> var moduleName = getModuleName();
>>>> import { foo } from moduleName;
>>>>
>>>> // use foo
>>>> ```
>>>>
>>>>
>>>>
>>>> 2014-09-26 20:00 GMT+04:00 Marius Gundersen <gundersen at gmail.com>:
>>>>
>>>>> And the reason you cannot import a module synchronously is that it
>>>>> would freeze the entire browser until the http request completes, which
>>>>> could be several seconds on a slow internet connection.
>>>>>
>>>>> If you want to import something dynamically you can do it using the
>>>>> API (to be finalized, I believe):
>>>>>
>>>>> ```js
>>>>> var moduleName = 'foo';
>>>>> Loader.import(moduleName).then(function(foo){
>>>>>   //use foo here
>>>>> });
>>>>> ```
>>>>>
>>>>> Marius Gundersen
>>>>>
>>>>> On Fri, Sep 26, 2014 at 5:29 PM, John Barton <johnjbarton at google.com>
>>>>> wrote:
>>>>>
>>>>>> no.
>>>>>>
>>>>>> On Fri, Sep 26, 2014 at 8:12 AM, Konstantin Ikonnikov <
>>>>>> ikokostya at gmail.com> wrote:
>>>>>>
>>>>>>> Can I import module dynamically, but synchronously? Example for
>>>>>>> common js
>>>>>>>
>>>>>>> ```js
>>>>>>> var moduleName = 'foo';
>>>>>>> var foo = require(moduleName);
>>>>>>> ```
>>>>>>>
>>>>>>> In es6 draft I found that ModuleSpecifier must be a StringLiteral
>>>>>>> http://people.mozilla.org/~jorendorff/es6-draft.html#sec-imports
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> es-discuss mailing list
>>>>>>> es-discuss at mozilla.org
>>>>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> es-discuss mailing list
>>>>>> es-discuss at mozilla.org
>>>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> es-discuss at mozilla.org
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>>
>>>>
>>>
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>>>
>>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140928/f72e2c41/attachment-0001.html>


More information about the es-discuss mailing list