React Native async await ошибка возврата вызова - PullRequest
0 голосов
/ 11 мая 2019

Функция за пределами await: ошибка возврата Невозможно использовать ключевое слово await Помогите мне, пожалуйста ...


I18n.defaultLocale = 'tr'
await AsyncStorage.getItem('locale').then((value) => {
 I18n.locale = value        
}).done();


I18n.fallbacks = true;
I18n.translations = { en, tr };

const currentLocale = I18n.currentLocale();

export function strings(name, params = {}) {
  return I18n.t(name, params);
};

export default I18n;

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Вы должны сделать что-то подобное с await / async:

var getItem = async function() {
  // await can be used here
  await AsyncStorage.getItem('locale').then((value) => {
    I18n.locale = value        
  }).done();
}

и назвать его так:

getItem(); // sync

или

await getItem(); // in another async function

Редактировать:С асинхронной функцией вы можете «делать то же самое», чем без асинхронной функции.Это просто await, который требует особой упаковки.

0 голосов
/ 11 мая 2019

Функция async может содержать выражение await, которое приостанавливает выполнение функции async и ожидает разрешения переданного Promise, а затем возобновляет выполнение асинхронной функции и возвращает разрешенное значение.

Помните, ключевое слово await допустимо только внутри async функций. Если вы используете его вне тела функции async, вы получите SyntaxError.

вам не нужно использовать then при использовании async/await,

для получения более подробной информации см. Асинхронная функция в веб-документах MDN

.
...