Javascript RequireJS-返回延迟加载静态文件的内容
我正在编写一个util模块,其中包含一个函数,可以延迟加载json文件并返回内容,但我似乎无法让它正常工作Javascript RequireJS-返回延迟加载静态文件的内容,javascript,requirejs,Javascript,Requirejs,我正在编写一个util模块,其中包含一个函数,可以延迟加载json文件并返回内容,但我似乎无法让它正常工作 define([ 'require' ], function (require) { var util = { jsonData: [], getJsonData: function () { require(['require', 'text!dummyData.json'], _.bind(function (require) {
define([
'require'
], function (require) {
var util = {
jsonData: [],
getJsonData: function () {
require(['require', 'text!dummyData.json'], _.bind(function (require) {
this.jsonData.concat(JSON.parse(require('text!dummyData.json')));
}, this));
return this.jsonData;
}
};
return util;
});
知道我做错了什么吗 它不起作用,因为您正在尝试(并且失败)从异步函数返回某个内容。对
的所有调用都需要将依赖项列表作为第一个参数的
,这些调用都是异步的。如果在您的函数中这样调用require
,并且您的函数旨在提供依赖于此require
调用的返回结果,那么您的函数也是异步的
您需要类似以下代码的内容,其中getJsonData
接受回调,并在收到数据后调用它。我还将require('text!text!dummyData.json')
更改为删除其中一个text代码>前缀,与此无关
define([
'require'
], function (require) {
var util = {
jsonData: [],
getJsonData: function (callback) {
require(['require', 'text!dummyData.json'], _.bind(function (require) {
this.jsonData.concat(JSON.parse(require('text!dummyData.json')));
callback(this.jsonData);
}, this));
}
};
return util;
});