我正在使用 rsvp.js 开展演示,展示promises中的错误处理。一切似乎都很好,直到我在标签中使用了CDN url for rsvp.js。既然我在我的应用程序中有模块加载的require.js,我尝试通过require js语法加载rsvp.js模块。在Chrome网络标签中,我看到rsvp.js模块也正常加载,但我在控制台中收到以下错误,
未捕获的ReferenceError:未定义RSVP。
MySQL-Python
答案 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){});