Можно ли использовать async/wait в React JS?
Я начал программировать в React Native, и я привык использовать синтаксис:
async myFunction(){
...
return await otherFunction();
}
Но я не знаю, как сделать его совместимым с React JS и React Native в общем пакете. Как я могу выполнить это, чтобы он работал на обеих платформах?
Спасибо!
Ответы
Ответ 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 (другими словами, он запускается на ~ всех браузерах )