返回顶部
首页 > 资讯 > 精选 >React应用怎么使用Async和Await
  • 425
分享到

React应用怎么使用Async和Await

2023-06-05 02:06:07 425人浏览 八月长安
摘要

这篇文章主要介绍“React应用怎么使用Async和Await”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React应用怎么使用Async和Await”文章能帮助大家解决问题。Async/Awai

这篇文章主要介绍“React应用怎么使用Async和Await”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React应用怎么使用Async和Await”文章能帮助大家解决问题。

Async/Await是尚未正式公布的ES7标准新特性。简而言之,就是让你以同步方法的思维编写异步代码。对于前端,异步任务代码的编写经历了 callback 到现在流行的 Promise ,最终会进化为 Async/Await 。虽然这个特性尚未正式发布,但是利用babel polyfill我们已经可以在应用中使用它了。

现在假设一个简单的React/Redux应用,我将引入 Async/Await 到其代码。

Actions

此例子中有一个创建新文章的 Action ,传统方法是利用 Promise 结合 Redux-thunk 中间件实现。

import axiOS from 'axios'export default function createPost (params) {   const success = (result) => {    dispatch({      type: 'CREATE_POST_SUCCESS',      payload: result    })    return result  }  const fail = (err) => {    dispatch({      type: 'CREATE_POST_FAIL',      err    })    return err  }  return dispatch => {    return axios.post('Http://xxxxx', params)    .then(success)    .catch(fail)  }}

现在将它改写为 async/await 的实现:

import axios from 'axios'export default function createPost (params) {   const success = (result) => {    dispatch({      type: 'CREATE_POST_SUCCESS',      payload: result    })    return result  }  const fail = (err) => {    dispatch({      type: 'CREATE_POST_FAIL',      err    })    return err  }  return async dispatch => {    try {      const result = await axios.post('http://xxxxx', params)      return success(result)    } catch (err) {      return fail(err)    }  }}

async和await是成对使用的,特点是使代码看起来和同步代码类似。

Components

同样,在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 插件来转换其成为浏览器支持的语法,虽然没有性能的提升,但对于代码编写体验要更好。

关于“React应用怎么使用Async和Await”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: React应用怎么使用Async和Await

本文链接: https://lsjlt.com/news/240840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • React应用怎么使用Async和Await
    这篇文章主要介绍“React应用怎么使用Async和Await”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React应用怎么使用Async和Await”文章能帮助大家解决问题。Async/Awai...
    99+
    2023-06-05
  • React/Redux应用如何使用Async/Await
    小编给大家分享一下React/Redux应用如何使用Async/Await,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Asyn...
    99+
    2024-04-02
  • async和await怎么使用
    本篇内容介绍了“async和await怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Eric:如何讲清楚Promiseasync和a...
    99+
    2023-06-03
  • vue的async-await怎么使用
    本文小编为大家详细介绍“vue的async-await怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue的async-await怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。曾经见过为了让钩子...
    99+
    2023-07-04
  • async和await有什么用
    这篇文章将为大家详细讲解有关async和await有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。来看一个简单的场景://假设有4个异步方法要按顺序调用new Pr...
    99+
    2024-04-02
  • NodeJs中怎么使用async和await处理异步
    NodeJs中怎么使用async和await处理异步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。场景远古时代我们在编写exp...
    99+
    2024-04-02
  • JS中的async与await怎么使用
    目录一、async 二、await: 三、综合应用 一、async async创建一个异步函数来定义一个代码块,在其中运行异步代码; 怎样变成异步函数呢?以 async 这个关键字...
    99+
    2024-04-02
  • 怎么使用ChatGPT解答js-async/await
    今天小编给大家分享一下怎么使用ChatGPT解答js-async/await的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。询...
    99+
    2023-07-06
  • JavaScript中async,await的使用和方法
    JS中 async函数和await 关键字 function hellworld() { return "您好!美好世界!"; } console.log...
    99+
    2024-04-02
  • C#中async和await有什么用
    这篇文章将为大家详细讲解有关C#中async和await有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言本文介绍async/Task。在学习该知识点过程中,一定要按照每一个示例,去写代码、执行、...
    99+
    2023-06-20
  • C#怎么使用async和await实现异步编程
    这篇文章主要介绍“C#怎么使用async和await实现异步编程”,在日常操作中,相信很多人在C#怎么使用async和await实现异步编程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么使用async...
    99+
    2023-07-02
  • js中怎么用async和await实现同步
    这篇“js中怎么用async和await实现同步”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js中怎么用async和awa...
    99+
    2023-06-29
  • ES7中Async/await如何使用
    这篇文章给大家介绍ES7中Async/await如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。...
    99+
    2024-04-02
  • vue中async-await如何使用
    本篇文章为大家展示了vue中async-await如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。曾经见过为了让钩子函数的异步代码可以同步执行,而对钩子函数使...
    99+
    2024-04-02
  • JS的异步函数async/await怎么使用
    这篇“JS的异步函数async/await怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JS的异步函数async/a...
    99+
    2023-07-05
  • C#异步编程之async/await怎么使用
    今天小编给大家分享一下C#异步编程之async/await怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。概述异步这个...
    99+
    2023-07-05
  • Node.js中async和await关键字如何使用
    本篇内容主要讲解“Node.js中async和await关键字如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中async和await关键字如何使用”吧!async 和 aw...
    99+
    2023-07-02
  • 一文教会你vue中使用async和await
    目录引言async和await定义使用场景实战场景补充:vue中async await请求处理小结引言 在我们进行实际开发中会遇到异步请求的问题,这时候我们的异步请求的存在就非常的具...
    99+
    2022-11-13
    vue使用async await vue async await
  • Nodejs新特性async和await的使用详解
    目录1.Es6常见语法的使用2.Async、Await和Promise1.Es6常见语法的使用 1.let、const let:是一个块作用域 if (true) { let...
    99+
    2024-04-02
  • C#使用async和await实现异步编程
    最近在写程序的时候,经常遇到大量需要异步访问的情况,但是对于async和await到底怎么写,还不是非常明确。 1.普通的程序怎么写? class Program { sta...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作