AJAXローダーをカプセル化しようとしています。ES6クラスを使用したAJAXのカプセル化
コードは次のようである:
ModelLoader.loadCsvFile('model1.csv', callback1);
ModelLoader.loadCsvFile('model2.csv', callback2);
this.callback
は最初_loadCsvFile(data)
前callback2
なるので、それらの両方がcallback2
になります:
const $ = require('jquery');
class ModelLoader {
static loadCsvFile(path, callback, options) {
this.callback = callback;
$.get(path, this._loadCsvFile);
}
static _loadCsvFile(data) {
ModelLoader.callback(); // using this.callback() doesn't work because this here is AJAX object
}
}
module.exports = ModelLoader;
問題は、ユーザーがこのようなコードを書くときということですが呼び出されます。
AJAXをカプセル化するための洗練されたソリューションはありますか?
'ModelLoader.callback'以外に' _loadCsvFile_'の中に何か他に何かありますか? – RyanNHG
'$ .get(path、callback)'の中にコールバックを渡して、どこにも格納しないのはなぜですか? – Bergi
静的メンバーだけで 'class'esを書いてはいけません。本当にそのようなオブジェクトが必要な場合は、オブジェクトリテラルを使用してください。 – Bergi