News for hackers. Stuff that matters.
Re:Comparing Node.js Promises, Try/Catch, Angular Zone.js an... by ulisesrmzroche on Wednesday April 16, 2014 @12:40PM (#7598816)
Generators are the best, though I'm starting to worry I'm using them too much.

edit: I'm using koa, so co is working in the background here. Should have said that earlier, my bad.

var save = function*(){ try { yield db.insertUser(); } catch (e) { throw e; } }

Re:Comparing Node.js Promises, Try/Catch, Angular Zone.js an... by eldude on Wednesday April 16, 2014 @01:13PM (#7599052)
A major limitation of using try/catch is that V8 will DEOPT your function call, which can be a 5-10x performance hit (to the current closure). The best way to avoid this is with a silly hack:

    function trycatchit(fn, that, args) {
      try {
        return fn.apply(that, args)
      } catch(e) {
       return e
      }
    }

    var value = trycatchit(fn, null, 'someValue')
    if (value instanceof Error) {
      ...
    }
Really though, you should just let co or whatever generator library you're using catch the error and rethrow it (or pass it to a callback) or be mindful to minimize your error handling.

[1] https://github.com/CrabDude/trycatch/blob/master/lib/trycatc...

Re:Comparing Node.js Promises, Try/Catch, Angular Zone.js an... by bajtos on Wednesday April 16, 2014 @12:46PM (#7598842)
That's not entirely true. If "db.insertUser()" is opening a database connection, who is going to close it on error?

The idea behind Zones for Node.js is to auto-attach new resources to the current zone, so that they can be cleaned when the zone exits.

AFAIK there is no solution for that at the moment.

Re:Comparing Node.js Promises, Try/Catch, Angular Zone.js an... by ulisesrmzroche on Wednesday April 16, 2014 @01:46PM (#7599263)
I'm thinking whatever db plugin you're using, but also this pseudo code actually has a lot of implicit things going in the background (koa/co, thunks, etc).

It makes for some readable app code though.

Re:Comparing Node.js Promises, Try/Catch, Angular Zone.js an... by alexgorbatchev on Wednesday April 16, 2014 @12:45PM (#7598840)
have you tried Co (https://github.com/visionmedia/co) and if so what's your experience?