remove callback hell

This commit is contained in:
Felix Wiedenbach 2021-01-29 22:34:12 +01:00
parent db24f20289
commit 308774c2a6
2 changed files with 26 additions and 34 deletions

View File

@ -318,24 +318,24 @@ var Module = Class.extend({
const languages = Object.keys(translations);
const fallbackLanguage = languages[0];
if (languages.length > 0) {
const translationFile = translations[language];
const translationsFallbackFile = translations[fallbackLanguage];
if (translationFile) {
Translator.load(this, translationFile, false, () => {
if (translationFile !== translationsFallbackFile) {
Translator.load(this, translationsFallbackFile, true, callback);
} else {
callback();
}
});
} else {
Translator.load(this, translationsFallbackFile, true, callback);
}
} else {
callback();
if (languages.length === 0) {
return callback();
}
const translationFile = translations[language];
const translationsFallbackFile = translations[fallbackLanguage];
if (!translationFile) {
return Translator.load(this, translationsFallbackFile, true, callback);
}
Translator.load(this, translationFile, false, () => {
if (translationFile !== translationsFallbackFile) {
Translator.load(this, translationsFallbackFile, true, callback);
} else {
callback();
}
});
},
/**

View File

@ -103,26 +103,18 @@ var Translator = (function () {
* @param {boolean} isFallback Flag to indicate fallback translations.
* @param {Function} callback Function called when done.
*/
load: function (module, file, isFallback, callback) {
if (!isFallback) {
Log.log(module.name + " - Load translation: " + file);
} else {
Log.log(module.name + " - Load translation fallback: " + file);
load(module, file, isFallback, callback) {
Log.log(`${module.name} - Load translation${isFallback && " fallback"}: ${file}`);
if (this.translationsFallback[module.name]) {
return callback();
}
var self = this;
if (!this.translationsFallback[module.name]) {
loadJSON(module.file(file), function (json) {
if (!isFallback) {
self.translations[module.name] = json;
} else {
self.translationsFallback[module.name] = json;
}
callback();
});
} else {
loadJSON(module.file(file), (json) => {
const property = isFallback ? "translationsFallback" : "translations";
this[property][module.name] = json;
callback();
}
});
},
/**