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 >
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 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(**function(id) { >>> var info = yield >>> request.get('http://www.**example.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(**function(id) { >>> var info = yield >>> request.get('http://www.**example.com?id='+id<http://www.example.com?id='+id> >>> ); >>> }); >>> }; >>> >>> galaxy.unstar(main)(function(**err, 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 > 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.
