我需要在浏览器中使用Q
库(http://documentup.com/kriskowal/q/)。我想使用RequireJS
加载这个库,但我不知道如何做到这一点。我知道如何加载我自己的模块,但我不能用Q
来做。它有一些功能:
(function (definition) {
//some another code here***
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(definition);
如何加载Q
然后在另一个模块中使用它?
答案 0 :(得分:14)
这样做的正确方法是(借用@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);
});
});
这种方式Q
不会泄漏到全局范围,并且很容易根据此库找到所有模块。
答案 1 :(得分:3)
您只需使用HTML
中的脚本语句加载Q库即可<script src="https://cdnjs.cloudflare.com/ajax/libs/q.js/1.1.0/q.js"></script>
然后您可以通过Q
变量访问它,如下所示:
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);
});