await on synchronous functions
Mark Volkmann
r.mark.volkmann at gmail.com
Fri Jul 17 19:35:32 UTC 2015
I think this is a valid use case for await working with synchronous
functions.
Suppose I have an array of functions that I want to call in series.
Some are marked async, some return a promise, and some do neither.
I'd like to be able to do something like this:
for (let fn of myFunctions) {
let result = await fn();
// Do something with result.
}
On Fri, Jul 17, 2015 at 1:35 PM, Andrea Giammarchi <
andrea.giammarchi at gmail.com> wrote:
> > Think about a large program where you refactor a single async function
> to no longer be async
>
> did that ever happened in the history of logic? I am actually curious to
> understand a single valid case where that would be a solution to any
> problem.
>
> Apologies if I can't see your point but we've been talking about "Promise
> must Promise" so much this answer was absolutely unexpected.
>
> Thanks for any sort of clarification
>
> On Fri, Jul 17, 2015 at 7:27 PM, Tom Van Cutsem <tomvc.be at gmail.com>
> wrote:
>
>> 2015-07-17 19:41 GMT+02:00 Andrea Giammarchi <andrea.giammarchi at gmail.com
>> >:
>>
>>> If I might, if there's one thing that has never particularly shone in
>>> JS, that is consistency.
>>>
>>> I see only two possibilities here: 1) it throws with non Promises 2) it
>>> "Promisify" anything that's not a Promise as if it was a
>>> `Promise.resolve(1)` ... but since there's too much magic in the second
>>> point, I'd rather stick with the first one.
>>>
>>
>> I would be highly in favor of (2). Think about a large program where you
>> refactor a single async function to no longer be async. Then I see no
>> reason why I should be forced to refactor all of its callers to remove the
>> await keyword. Going from sync to async requires refactoring because you're
>> introducing new potential interleaving hazards, but any code that is
>> already prepared to work with async functions (or promises in general)
>> should work equally fine on immediately resolved promises.
>>
>> regards,
>> Tom
>>
>>
>>
>>>
>>> Just my quick thoughts
>>>
>>> Best Regards
>>>
>>> On Fri, Jul 17, 2015 at 6:33 PM, Kevin Smith <zenparsing at gmail.com>
>>> wrote:
>>>
>>>> I know the spec for this isn't finalized, but what is the current
>>>>> direction for the behaviour when await is used on a function that is not
>>>>> marked async and doesn't return a Promise? Should it run immediately or
>>>>> wait for the next turn of the event loop?
>>>>>
>>>>
>>>> More generally, the question is: what should await do for non-promises?
>>>>
>>>> await 1;
>>>>
>>>> Should it force a job to be queued?
>>>>
>>>> _______________________________________________
>>>> 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
>
>
--
R. Mark Volkmann
Object Computing, Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150717/76670be7/attachment.html>
More information about the es-discuss
mailing list