在React组件中,也比较一下 Promise 和 Async/Await 的方法异同。

传统地使用 Promise :

import React, { Component } from 'react'
import { connect } from 'react-redux'
import { createPost } from '../actions/post' class PostEditForm extends Component {
constructor(props) {
super(props)
} contributePost = e => {
e.preventDefault() // .... get form values as params this.props.createPost(params)
.then(response => {
// show success message
})
.catch(err => {
// show error tips
})
} render () {
return (
<form onSubmit={this.contributePost}>
<input name="title"/>
<textarea name="content"/>
<button>Create</button>
</form>
)
}
} export default connect(null, dispatch => {
return {
createPost: params => dispatch(createPost(params))
}
})(PostEditForm)

如果使用 Async/Await :

import React, { Component } from 'react'
import { connect } from 'react-redux'
import { createPost } from '../actions/post' class PostEditForm extends Component {
constructor(props) {
super(props)
} async contributePost = e => {
e.preventDefault() // .... get form values as params try {
const result = await this.props.createPost(params)
// show success message
} catch (err) {
// show error tips
}
} render () {
return (
<form onSubmit={this.contributePost}>
<input name="title"/>
<textarea name="content"/>
<button>Create</button>
</form>
)
}
} export default connect(null, dispatch => {
return {
createPost: params => dispatch(createPost(params))
}
})(PostEditForm)

可以见得,两种模式, Async\Await 的更加直观和简洁,是未来的趋势。但是目前,还需要利用babel的 transform-async-to-module-method 插件来转换其成为浏览器支持的语法,虽然没有性能的提升,但对于代码编写体验要更好。

最新文章

  1. android:descendantFocusability用法简析
  2. Java项目往数据库中插入数据,出现中文乱码
  3. 计算机病毒实践汇总六:IDA Pro基础
  4. memcpy code
  5. TIF、JPG图片手动添加地理坐标的方法(转载)
  6. 九度OJ 题目1534:数组中第K小的数字(二分解)
  7. jQuery UI Widget 原理
  8. 使用PowerDesigner画ER图详细教程
  9. 使用Java 8中的Stream
  10. hashCode()方法以及集合中Set的一些总结
  11. Xcode 断点无用,也不打印输出
  12. MUI在项目中使用时遇到的问题的个人分享
  13. 通过iptables添加QoS标记
  14. PythonStudy——函数默认值
  15. 6.1Python文件的操作(一)
  16. DCNN models
  17. vs添加webservice
  18. 前端代码控制gif图暂停与播放的坑
  19. memcache知识梳理
  20. Django之Form

热门文章

  1. HDU 6071 Lazy Running (同余最短路)
  2. Python开发基础-Day1-python入门
  3. Visual Studio Xamarin提示Bonjour backend初始化失败
  4. poj 2739(筛法求素数)
  5. 旺财C# .NET代码生成器之DTcms4/5代码批量生成功能
  6. 【20181019T1】加密【逆元+位运算】
  7. 【bitset】【推导】hdu5961 传递
  8. Springcloud中的region和zone的使用
  9. 20172333 2017-2018-2 《Java程序设计》第3周学习总结
  10. Codeforces Round #343 (Div. 2) C. Famil Door and Brackets dp