プロジェクトにjsファイルがたくさんあります。ファイルが既にロードされているかどうかをテストするrequire関数を作成したいと思います。私はrequirejsを認識していますが、私は何か小さなものをやりたいと思っています。私の関数の問題は、requires
の呼び出しでエラーwidgets is undefined
がスローされることです。どうすればそれを防ぐことができますか?別のファイルからオブジェクトを定義する必要があります
function requires(obj, fn){
if(typeof obj === 'undefined'){
log('obj undefined');
window.setTimeout(function(){requires(obj, fn)}, 10);
//10 ms is arbitrary, i'm not a fan of that
}else{
fn();
}
}
//example using it
requires(widgets, function(){
window.widgets.showUserDlg = function showUserDlg(data) {
...
}
}
});
これは 'else'条件になり、' fn() 'はコールバックを' widgets'で実行します。最初にAJAXによって 'widgets'ファイルを取得する必要がありますか? –
未定義のパラメータを関数に渡すことはできません**、常にエラーを投げます。[ここ](http://stackoverflow.com/a/16942951/3880255)を参照してください。動作しません。設定した環境に応じてコードを調整する必要があります。 –