如何在jsfiddle上使用q promise 2.X和requirejs?

时间:2015-07-21 19:11:14

标签: javascript requirejs q

这个

requirejs.config({
  paths: { 
    'q' : '//cdnjs.cloudflare.com/ajax/libs/q.js/2.0.3/q.min'
}});

require(['q'], function(Q) {
  console.log("In Loaded callback");
  console.log("Q: %o", Q);
  return {};
});

失败了:

Module name "weak-map" has not been loaded yet for context: _. Use require([])
http://requirejs.org/docs/errors.html#notloaded
File: require.min.js, Line: 1, Column: 1948

请参阅JSFiddle

然而,这很好用:

requirejs.config({
  paths: { 
    'q' : '//cdnjs.cloudflare.com/ajax/libs/q.js/1.4.1/q.min'
}});

1 个答案:

答案 0 :(得分:2)

我查了一下,发现Q v2现在是实验性的。在源代码中,我们可以看到它与后续库

有依赖关系
var WeakMap = require("weak-map");
var iterate = require("pop-iterate");
var asap = require("asap");

这种类型的require / module导入用于node / browserify。它不会支持require.js。根据文件: -

  

这是Q版本2,目前正在试验中。如果您从npm安装最新的Q,您将获得版本1发布列车中的最新版本。

因此,除非我们在nodejs / browserify中使用它,否则最好在这个时间点坚持使用v1。