Orgy
Promises library that supports queues of file requests.
For nodejs versions 0.0.10 - 0.0.12:
npm install orgy@2.0.7
Documentation:
View the API reference here.
Installation:
npm install orgy
- Browser (attached to window object)
<script src="/dist/orgy.min.js"></script>
<script>
var def = Orgy.deferred();
...
</script>
<script src="/dist/orgy.bundle.min.js"></script>
<script>
var Orgy = require("orgy");
var def = Orgy.deferred();
...
</script>
Example:
- Fetch a group of resources asynchronously, then return manipulated results
down the chain.
const Orgy = require("orgy");
const q = Orgy.queue([
{
type : "json",
url : "data/data1.json"
},
{
type : "json",
url : "data/data2.json"
},
{
type : "css",
url : "data/sample.css"
}
],{
id : "q1"
});
q.done(function(r,deferred,last){
console.log(last);
});
q.then(function(r){
console.log(r);
return 1;
});
q.then(function(r,deferred,last){
console.log(last);
return 2;
});
const Orgy = require("orgy");
const q = Orgy.get("q1");
Features:
-
Browser and nodej / iojs compatible.
-
Handles a variety of dependency types and automatically converts them into promises.
- javascript files
- css files
- timers
- all other file types handled as text
-
Queues can be held back from settling after their dependencies have resolved by a resolver method.
-
When then() returns a value that value is passed down the execution chain.
-
When then() returns an unsettled instance (deferred/queue), further execution on the callback chain is halted until that instance resolves. The deferred is then passed to the next tick of the callback chain, where its return value can be accessed.
Running tests:
grunt t
Todo:
- Add optional retry configuration setting when remote requests rejected due non 200 HTTP response?
- Extend deferred, queue from native ES6 promises
More examples:
Here.