Anton Kovalyov wrote: > anders elo wrote: >> I'd like to propose the incorporation of multiple return values into >> the ES standard. >> >> function foo(){ >> return 1,2,3; >> } >> >> let (a,b,c) = foo(); >> >> let (a,b) = foo(); // ignore c >> >> let (a,...b) = foo() // a = 1, b = [2,3] >> >> /* also useful for asynchronous functions returning a promise */ >> let (response,headers) = yield getAjaxData("http://some.host.com/data"); > > See here: http://wiki.ecmascript.org/doku.php?id=harmony:destructuring > and > https://developer.mozilla.org/en-US/docs/JavaScript/New_in_JavaScript/1.7#Destructuring_assignment_%28Merge_into_own_page.2Fsection%29 > > > Anton
Hi Anders, The syntax you proposed is not backwards compatible. Anton has directed you to articles on destructuring, which is the ES6 way to accomplish what you want. Let me elaborate. Your examples can be accomplished as follows: function foo() { // We return an array of values. return [ 1, 2, 3 ]; } let [ a, b, c ] = foo(); let [ a, b ] = foo(); // c is ignored let [ a, ...b ] = foo(); // a is 1, b is [ 2, 3 ] I believe if you are using Task.js, you can additionally use the asynchronous form in like manner. Nathan _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss