I hope we can fix this soon, but I agree documenting it meanwhile is a good
idea.

If someone has a good idea for where in the docs to put that, a PR would be
welcome!

On Wed, Apr 15, 2020 at 11:18 AM Александр Гурьянов <[email protected]>
wrote:

> Wow seems a hot topic:) I was so shocked and forget to google it) btw I
> solved the problem like this
>
> https://github.com/emscripten-core/emscripten/issues/5820#issuecomment-353605456
>
> I think is worth to add it in documentation as workaround. Cause problem
> still there from 2017.
>
> Btw, it was fun to solve this problem without help, so mind blowing.
>
> ср, 15 апр. 2020 г. в 23:57, Alon Zakai <[email protected]>:
>
>> May be related to
>> https://github.com/emscripten-core/emscripten/pull/10697 , see
>> discussion and ongoing work there.
>>
>> On Wed, Apr 15, 2020 at 1:41 AM Александр Гурьянов <[email protected]>
>> wrote:
>>
>>> Hi. I using `-s MODULARIZE=1` for my module, inside modern async/await
>>> environment. I think that design of Module.then is not good. As said
>>> Module.then is promise like function, but it returns it self at the
>>> end. So this promise will never ends in await case. I spent a lot of
>>> time to find why all browsers hangs with my code.
>>>
>>> Problem can be described as follow:
>>> ```
>>>              const Module = {}; // const Module = MyCode();
>>>              Module.then = function(cb) { // declared in postamble.js
>>>                  cb(Module);
>>>                  return Module; // problem place
>>>              };
>>>              // How I want to use it
>>>              const module = await new Promise((resolve) =>
>>> Module.then(resolve));
>>>              // here we have intialized module
>>> ```
>>>
>>> If you paste this code in browser it will hang, because await is never
>>> finished. Module.then will return promise-like object forever, so
>>> browser will call `then` forever.
>>>
>>> My suggestion is to remove `return Module` at the end of `then`, or
>>> rename `then` method to avoid name clashing with Promise. At least we
>>> need to change documentation, and notice that problem exists.
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "emscripten-discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVF8pmdYAdMQD5XpdyOmW%2B7-xZHtbpk7SyzG2uXm3fv0QQ%40mail.gmail.com
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpTBDZkiKBB0wVJac6zbOdChyxJfYCWQTfJMsNqYFb21Ag%40mail.gmail.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpTBDZkiKBB0wVJac6zbOdChyxJfYCWQTfJMsNqYFb21Ag%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVGQCSQFP3Y6R6YRv81AMQdX%2B%2B5SLU77bBFfDUTp7hrUTA%40mail.gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVGQCSQFP3Y6R6YRv81AMQdX%2B%2B5SLU77bBFfDUTp7hrUTA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpSXv5vze3cRtOwfpK0OFecCjRc6%3DxdmPYJte3BwB-%2B_Cg%40mail.gmail.com.

Reply via email to