#javascript
Вопрос:
У меня есть конкретная ситуация, когда у меня есть метод, который получает объект следующим образом
async ({ locale }, ctx) => {
const lang = await LanguageService(ctx).getLanguage({
locale,
});
return lang.direction ? 'rtl' : 'ltr';
},
Это { locale }
равносильно запросу as locale: en_US
.
Следующий метод, который мне нужно использовать getLanguage
, принимает { locale }
, но я должен передать только тот en
.
Поэтому я подумал сделать срез, но если я отправлю его, например
const sliced = locale.slice(0,2)
const lang = await LanguageService(ctx).getLanguage({
sliced, // or locale: sliced
});
Из следующего метода локаль отображается как неопределенная, и я понятия не имею, как ее передать, только en
в этой ситуации у меня есть
Способ getLanguage
async getLanguage({ id, locale }) {
console.log('locale: ', locale);
if (!id amp;amp; !locale) {
const errorMessage = 'Specify ID or locale';
throw new ApolloError(errorMessage);
}
const filter = id ? { id } : { locale };
try {
return await this.withDAO(({ languages }) =>
languages.selectFirst(filter)
);
} catch (error) {
throw new ApolloError(error.message);
}
}
Этот метод нуждается { locale }
, и мне нужно пройти en
, а не en_US
Я понятия не имею, как этого достичь, так как, когда я достигаю этого вышеописанного метода, console.log(языковой стандарт) отображается неопределенным, когда я использую slice.
Есть способ, которым я могу использовать этот объект так, как мне нужно
Комментарии:
1. К вашему сведению,
{ sliced }
и{ locale: sliced }
это не одно и то же, и может объяснить, почему вы получаетеundefined
.2. Да, но и то, и другое дает мне неопределенность во втором методе, а также то, что проблема, которую я пробовал, — это другая комбинация, всегда попадающая в неопределенность
3. это правильно —
{ sliced }
это сокращение{ sliced: sliced }
, которое означает , что свойство, которое вы передаете функции, естьsliced
, но вы пытаетесь получить доступlocale
(который естьundefined
).const lang = await LanguageService(ctx).getLanguage({ locale: sliced });
должен работать здесь4. Проблема здесь в том, что метод принимает языковой стандарт, так как же это сделать?
5. Я не могу передать нарезку, так как я должен передать язык, так как
en
это моя главная проблема