What nodejs library is most like jQuery's deferreds?
I've become a skilled user of jQuery's new and amazing Deferred module, and as I'm easing into using more of Node.js, I find myself wanting something exactly like it in much of my Node.js programming: callbacks that block until a collection of promises devolves to resolved, with the freedom to add to the array on-the-fly as the task grows in complexity-- such as when one processes a tree of data, the size of which is not known at the start of the task.
But node-fibers
requires a whole new executable, Q()
's interface is just damned confusing, and node-step
only seems to handle single-task synchronizations.
Has someone just ported jQuery's Deferreds to a node-ready form? It doesn't seem that unlikely, nor does it seem that Deferreds is dependent upon DOM-available features, but I haven't 开发者_开发知识库found a server-side equivalent.
If you want the same API, there's nothing stopping you from using jQuery itself under Node. Just npm install jquery
, then:
var $ = require('jquery');
var deferred = $.Deferred();
I don't think you can get any closer than jQuery deferred lib for nodeJS.
This node library looks quite similar in functionality to jQuery's Deferred:
https://github.com/kriszyp/node-promise
This wasn't around when the question was asked, but according to the readme it uses (and passes) the jquery tests. It appears to be exactly identical minus the (jQuery||$). prefix.
https://github.com/jaubourg/jquery-deferred-for-node
This nodejs module is CommonJS compliant.
https://github.com/cujojs/when
Googling: deferred for nodejs
Gave me: https://github.com/felixge/node-deferred
Though not exactly what you are looking for, is moderately close. I find that the callback chaining is fairly natural, though deeply nested chains can be a bit difficult to keep up with.
Searching for: promise nodejs lead me down a path of more interesting results...
- https://github.com/willconant/flow-js
- https://github.com/creationix/conductor
Both of which are probably much closer to what you are looking for. :)
This node library contains jquery 1.8.2 deferred class.
https://www.npmjs.com/package/jquery-deferred
npm install jquery-deferred
精彩评论