0

我有一个外部 API,它提供了一个脚本文件,其中包含 javascript 回调函数。它假设该功能是在我的代码中实现的。

例如具有以下内容的 JS 文件:

aCallback({json:'stuff'});

我想将它包装在一个 requireJS 模块中,但不太确定如何去做。

我尝试了以下垫片:

define("my-wrapper", [], function () {
        return function(data){ console.log(data); }
    }
);
var require = {
    shim: {
        "my-wrapper": {exports: "aCallback"},
        "http://api.con/service": ["my-wrapper"]
    }
};

require(["http://api.con/service"], function (service) {});

但它说当它尝试加载aCallback未定义的服务时。我做错了什么?有没有更好的方法来包装这种脚本?

4

1 回答 1

0

您可能想尝试将回调作为依赖项而不是使用shim,以便它确实存在于同一范围内。

require(["http://api.con/service", "my-wrapper"], function (service, aCallback) {

});

不过,它确实取决于服务期望如何使用回调。

于 2013-08-26T13:05:20.110 回答