Подтвердить что ты не робот

Как использовать ключевое слово ожидания для реагирования на родной язык?

Я попытался использовать await/async для ответа native, но я получил неожиданную ошибку токена.

Я добавил код в свой исходный файл javascript:

var value = await AsyncStorage.getItem('STORAGE_KEY');

Моя собственная версия - 0.15.0.

Нужно ли добавить некоторую конфигурацию для использования async/wait?

4b9b3361

Ответ 1

Я использую async/await в своем собственном приложении для реагирования и не должен ничего делать, чтобы настроить или включить его в моем проекте. Мое использование принимает форму...

async getCache(key){
    try{
        let value = await AsyncStorage.getItem(key);
        return value.json();
    }
    catch(e){
        console.log('caught error', e);
        // Handle exceptions
    }

}

Примечание: Если вы используете ожидание внутри функции, которая явно не объявлена ​​с помощью async, вы получите сообщение об ошибке "Неожиданная синтаксическая ошибка маркера".

Ответ 2

Нужно ли добавить некоторую конфигурацию для использования async/wait?

Да. async все еще не является окончательной частью спецификации; они в настоящее время считаются "Этап 3" (Кандидат).

Вы можете включить все языковые предложения Stage 3 в .babelrc с помощью stage-3 preset. Кроме того, вы можете добавить плагин async.

Ответ 3

Если у вас есть файл .babelrc в корне вашего проекта, вам нужно добавить "react-native" preset:

npm i babel-preset-react-native --save-dev

Затем в вашем файле .babelrc добавьте следующее:

{
  "presets": ["react-native"]
}

Подробнее здесь.

Ответ 4

После прочтения этого комментария в вопросах, связанных с реакцией GitHub, для меня работало следующее:

Добавьте следующий модуль npm:

npm install babel-preset-react-native-stage-0 --save

Добавьте в конфигурацию .babelrc следующую конфигурацию:

{ presets: ['react-native-stage-0'] }

Очистите кеш:

$ watchman watch-del-all
$ ./node_modules/react-native/packager/packager.sh --reset-cache