未捕获的ReferenceError:未定义RSVP,将require.js与rsvp一起使用时出错

时间:2015-05-07 08:42:25

标签: javascript jquery requirejs rsvp.js rsvp-promise

我正在使用 rsvp.js 开展演示,展示promises中的错误处理。一切似乎都很好,直到我在标签中使用了CDN url for rsvp.js。既然我在我的应用程序中有模块加载的require.js,我尝试通过require js语法加载rsvp.js模块。在Chrome网络标签中,我看到rsvp.js模块也正常加载,但我在控制台中收到以下错误,

  

未捕获的ReferenceError:未定义RSVP。

MySQL-Python

2 个答案:

答案 0 :(得分:2)

我看了source code of RSVP并找到了这段代码:

"$OUTPUT"

第一个/* global define:true module:true window: true */ if (typeof define === 'function' && define['amd']) { define(function() { return RSVP; }); } else if (typeof module !== 'undefined' && module['exports']) { module['exports'] = RSVP; } else if (typeof platform !== 'undefined') { platform['RSVP'] = RSVP; } 是RSVP检测到它在AMD环境中运行并注册为AMD模块的地方。所以你不会拥有全球if

现在,在您的代码中,您需要RSVP并将其绑定到RSVP变量,全部小写。因此,它可以rsvp访问,而不是rsvp。要么将其称为RSVP,要么将您传递给rsvp的函数中的变量名称更改为require

RSVP

请注意,引用Bootstrap是没有意义的,因为它将自己安装为jQuery插件,所以你可以这样做:

require(["bootstrap", "js/rsvp"], function (bootstrap, RSVP) { 

答案 1 :(得分:0)

你还没有定义RSVP,你已经包含了rsvp libraray但是把它设置为变量rsvp而不是RSVP,所以当你调用RSVP.Promise()时它会抛出错误。
通过 - https://github.com/tildeio/rsvp.js/-

的基本用法
var RSVP = require('rsvp');
var promise = new RSVP.Promise(function(resolve, reject){});