I need to use Q
library (http://documentup.com/kriskowal/q/) in the browser. I would like to use RequireJS
to load this library, but I don't have any idea how to do this. I know how to load my own module, but I can't do it with Q
. It has some function:
(function (definition) {
//some another code here***
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(definition);
How can I load Q
and then use it in another module?
You can simply load the Q library using a script statement in your HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/1.1.0/q.js"></script>
Then you can access it via the Q
variable like so:
function square(x) {
return x * x;
}
function plus1(x) {
return x + 1;
}
Q.fcall(function () {return 4;})
.then(plus1)
.then(square)
.then(function(z) {
alert("square of (value+1) = " + z);
});
See this running at http://jsfiddle.net/Uesyd/1/
The proper AMD way of doing this would be (borrowed example code from @Eamonn O'Brien-Strain):
requirejs.config({
paths: {
Q: 'lib/q'
}
});
function square(x) {
return x * x;
}
function plus1(x) {
return x + 1;
}
require(["Q"], function (q) {
q.fcall(function () {
return 4;
})
.then(plus1)
.then(square)
.then(function (z) {
alert("square of (value+1) = " + z);
});
});
This way Q
doesn't leak to the global scope and it's easy to find all modules depending on this library.