Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why can't I use Promise in node v0.11.11?

I'm just messing around with the v0.11 branch of node, and I'm wondering why I can't use the native ES6 Promise object, even with --harmony turned on.

My normal chrome browsers:

Google Chrome    32.0.1700.77 (Official Build 244503) 
JavaScript       V8 3.22.24.10

Supports them, and node.js v0.11.11 is telling me:

> process.versions.v8
'3.22.24.19'

So what gives?

like image 887
Nobody Avatar asked Feb 13 '14 12:02

Nobody


1 Answers

Native Promises are in, you can now use them. They're still slower and harder to debug than libraries like Bluebird but they're there.


Promises currently in Chrome are DOM Futures. Also, they're very experimental and the API might change (it's quite heavily discussed atm).

Consider using Bluebird promise instead as they're faster, have better stack traces and are stable.

It is consdierably faster than libraries like Q (two orders of magnitude faster) it has much better stack traces and a completely spec compliant API. You may of course also compile node and v8 yourself - there are promises in v8 itself.

There are promises in ES6, they're just not 'settled' yet - making the Chrome people are quite angry too

They're considered part of the DOM too because future DOM APIs will use promises.

like image 183
Benjamin Gruenbaum Avatar answered Sep 22 '22 14:09

Benjamin Gruenbaum