On Wed, Jul 17, 2013 at 8:42 AM, jmar777 <[email protected]> wrote:

> > Here are the notes from the meeting when this was discussed:
> https://github.com/**rwldrn/tc39-notes/blob/master/**
> es6/2013-01/jan-31.md#**comprehensionsgenerator-syntax<https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-01/jan-31.md#comprehensionsgenerator-syntax>
>
> Ahh, thanks for the clarification.  So, hopefully correct this time, the
> previous example should have really been:
>
> [for (url of getURLs()) xhrGet(url)]
>
>
For a generator comprehension, you had the parens right, but yes, the order
is now correct :)

(for (url of getURLs()) xhrGet(url))

Rick



> ?
>
> On Tuesday, July 16, 2013 7:38:56 PM UTC-4, Rick Waldron wrote:
>>
>>
>>
>>
>> On Tue, Jul 16, 2013 at 9:13 AM, jmar777 <[email protected]> wrote:
>>
>>> > That for...of syntax is very nice, is it an official part of
>>> ECMAScript 6?
>>>
>>> Yes, although it's not implemented in V8 just yet.  Once for-of and
>>> generator-expressions are implemented, a lot of these operations will
>>> become a lot nicer at the language level (rather than relying on cludgy
>>> `suspend.map()` or whatever helpers).
>>>
>>> Here's an example from the ES6 Wiki [1]:
>>>
>>>     (xhrGet(url) for (url of getURLs())) // hawt
>>>
>>> [1] http://wiki.ecmascript.org/**doku.php?id=harmony:generator_**
>>> expressions<http://wiki.ecmascript.org/doku.php?id=harmony:generator_expressions>
>>>
>>
>> Caution!!!
>>
>> *"This proposal has progressed to the Draft ECMAScript 6 Specification,
>> which is available for review here: specification_drafts. Any new issues
>> relating to them should be filed as bugs at http://bugs.ecmascript.org.
>> The content on this page is for historic record only and may no longer
>> reflect the current state of the feature described within"*
>>
>> I added this to every wiki proposal that is now in the spec—in this case,
>> the generator expression syntax is backwards!
>>
>> In the spec draft...
>>
>> GeneratorComprehension :
>>   ( Comprehension )
>>
>>
>> And Comprehension is defined in ArrayComprehension
>>
>> Comprehension :
>>   ComprehensionFor ComprehensionQualifierTail
>>
>> ComprehensionQualifierTail :
>>   AssignmentExpression
>>   ComprehensionQualifier ComprehensionQualifierTail
>>
>> ComprehensionQualifier :
>>   ComprehensionFor
>>   ComprehensionIf
>>
>> ComprehensionFor :
>>   for (ForBinding of AssignmentExpression )
>>
>> ComprehensionIf :
>>   if ( AssignmentExpression )
>>
>>
>> ForBinding :
>>   BindingIdentifier
>>   BindingPattern
>>
>>
>> Here are the notes from the meeting when this was discussed:
>> https://github.com/**rwldrn/tc39-notes/blob/master/**
>> es6/2013-01/jan-31.md#**comprehensionsgenerator-syntax<https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-01/jan-31.md#comprehensionsgenerator-syntax>
>>
>>
>> Rick
>>
>>
>>
>>
>>> On Tuesday, July 16, 2013 2:36:44 AM UTC-4, cpprototypes wrote:
>>>>
>>>> The code sample I posted was a simplified example to demonstrate the
>>>> issue.  The actual command line script I was working on uses the response
>>>> from the get request for other things.  That for...of syntax is very nice,
>>>> is it an official part of ECMAScript 6?
>>>>
>>>>
>>>> On Friday, July 12, 2013 2:47:28 PM UTC-7, cpprototypes wrote:
>>>>>
>>>>> I'm using node 0.11.3 with --harmony-generators to try the new
>>>>> feature.  I found two libraries that should help use existing node
>>>>> callback-based code with generators (suspend and galaxy).  The code I'm
>>>>> trying to run was similar to the following:
>>>>>
>>>>> (using suspend)
>>>>>
>>>>> var fs = require('fs');
>>>>> var request = require('request');
>>>>>
>>>>> suspend(function* (resume) {
>>>>>     var contents = yield fs.readFile('idList.json', 'utf8', resume);
>>>>>     contents.split('\n').forEach(**f**unction(id) {
>>>>>         var info = yield request.get('http://www.**exampl**
>>>>> e.com?id='+id <http://www.example.com?id='+id>, resume);
>>>>>     });
>>>>> })();
>>>>>
>>>>> (using galaxy)
>>>>>
>>>>> var galaxy = require('galaxy');
>>>>> var fs = galaxy.star(require('fs'));
>>>>> var request = galaxy.star(require('request')****);
>>>>>
>>>>> function* main() {
>>>>>     var contents = yield fs.readFile('idList.json', 'utf8');
>>>>>     contents.split('\n').forEach(**f**unction(id) {
>>>>>         var info = yield request.get('http://www.**exampl**
>>>>> e.com?id='+id <http://www.example.com?id='+id>);
>>>>>     });
>>>>> };
>>>>>
>>>>> galaxy.unstar(main)(function(**e**rr, result) {
>>>>>     console.log('done');
>>>>> });
>>>>>
>>>>> Using either library, when node tries to execute the get request ("var
>>>>> info = yield request.get...") it exits with the following error:
>>>>>
>>>>> SyntaxError: Unexpected identifier
>>>>>
>>>>> And the error highlights the "request" part in "var info = yield
>>>>> request.get..."  I'm guessing that the creation of the new function scope
>>>>> in the forEach is somehow causing an issue.  But I'm not sure why it's not
>>>>> working.
>>>>>
>>>>>
>>>>>  --
>>> --
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-*
>>> *Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To post to this group, send email to [email protected]
>>>
>>> To unsubscribe from this group, send email to
>>> nodejs+un...@**googlegroups.com
>>>
>>> For more options, visit this group at
>>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to nodejs+un...@**googlegroups.com.
>>>
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>> .
>>>
>>>
>>>
>>
>>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to