XMLHttpRequestで作成した非同期要求のためにビルドしたいライブラリに問題があります。私は件のデータを受け取ってくださいと件のデータがロードされているとき、私のモジュールを定義するために、コールバックで働いライブラリで非同期要求がサポートされています
(function(root,factory){
if(typeof define === "function" && define.amd){
// AMD module
define([], factory);
}else{
global.tof = factory();
}
})(this,() => {
const obj = {
datas: {},
get: function(){}
...
}
const url = "...";
let request = new XMLHttpRequest();
request.open('GET',url);
request.responseType = 'json';
request.send();
request.onload= function(){
obj.datas = request.response;
}
return obj;
});
が、私のモジュールが本当にある前に私はそれはまだ火requireJSで「ライブラリ」を読み込むとき:私はいくつかのコードで説明します定義された。私はrequireJSと私のモジュールをテストするために使用
(function(root,factory){
function myCallback(r){
if(typeof define === "function" && define.amd){
// AMD module
define('tof',[], factory(function(r){
return r;
}));
}
}
factory(myCallback);
})(this, function foo(callback){
const obj = {
datas: {},
get: function(){}
...
}
const url = "...";
let request = new XMLHttpRequest();
request.open('GET',url);
request.responseType = 'json';
request.send();
request.onload= function(){
obj.datas = request.response;
callback(obj);
}
});
私の他のスクリプト:
require(['tof'], function(tof){
// return undefined because of my async request
console.log(tof);
});
私はこれをどのように解決するだろうか?
ありがとうございます!