在浏览器中使用Q库

时间:2013-08-20 05:31:11

标签: javascript module requirejs q

我需要在浏览器中使用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然后在另一个模块中使用它?

2 个答案:

答案 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);
});

请参阅此http://jsfiddle.net/Uesyd/1/