Javascript RequireJS-返回延迟加载静态文件的内容

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) {

我正在编写一个util模块,其中包含一个函数,可以延迟加载json文件并返回内容,但我似乎无法让它正常工作

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