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

Можно ли использовать async/wait в React JS?

Я начал программировать в React Native, и я привык использовать синтаксис:

async myFunction(){
    ...
    return await otherFunction();
}

Но я не знаю, как сделать его совместимым с React JS и React Native в общем пакете. Как я могу выполнить это, чтобы он работал на обеих платформах?

Спасибо!

4b9b3361

Ответ 1

Реагируйте с родными кораблями с Babel и некоторыми настройками Babel, тогда как React on the web - это всего лишь код, связанный с реакцией.

Если вы хотите использовать async/wait в Интернете сегодня, вам понадобится Babel и правильные преобразования: https://babeljs.io/docs/plugins/transform-async-to-generator/

или предварительные настройки этапа 1, что довольно часто встречается в приложениях React. http://babeljs.io/docs/plugins/preset-stage-1/

Ответ 2

Если вы создаете приложение create-react-app, оно доступно с v0.2.3

https://github.com/facebookincubator/create-react-app/releases/tag/v0.2.3

Он может использоваться внутри Компонента, подобного этому

class App extends Component {
  constructor(props) {
    super(props);
    this.state = { message: '' };
  }

  async componentDidMount() {
    this.setState({ message: 'loading...' });
    let d = await getData('/posts/1');
    this.setState({ message: d });
  }

  render() {
    let { message } = this.state;
    return (
      <div className="App">
        <p className="App-intro">
          { message }
        </p>
      </div>
    );
  }
}

Смотрите:

https://github.com/facebookincubator/create-react-app/issues/1024

Ответ 3

В качестве альтернативы вы можете использовать Typescript.

Начиная с версии 2.1 можно использовать async/await и напрямую переходить на ES5 (другими словами, он запускается на ~ всех браузерах )