美文网首页
Javascript 之异步请求

Javascript 之异步请求

作者: kimcastle | 来源:发表于2022-01-05 11:09 被阅读0次

)异步编程模块在前端中,经历了 XHR 到 jquery 封装的 Ajax 都在试图解决异步编程中的问题。传统的 ajax 当异步请求的数据存在依赖关系的时候,会产生多重回调问题,俗称“回调地狱” callback hell。

ES6 提供了一个 Promise 对象来解决“回调地狱”问题,但 Promise 也不是完美的,近年来,Javascript 提供了 Async/Await 解决方案,使异步代码看起来像同步代码方法。

1.什么是 Promise

Promise 是一个对象,通过它可以获取异步操作的结果。promise 有三中状态:pending(等待状态)、fulfilled(成功状态)、rejected(失败状态),状态一旦改变,就不会再变。

Promise 本身是一个构造函数

new Promise((resolve, reject) => {

    //里面做一些异步操作

})

new Promise()

new Promise() : 接收一个闭包函数,闭包函数有两个参数 ,这两个参数也是函数:resolve 函数用于将 promise 状态转换为“成功态”,reject 函数用于把 promise 状态转换为“失败态”。

new Promise 实例对象有一些原型方法:then、catch

2. then 方法:

then() 方法接收两个闭包函数,一个处理“成功态”结果,另一个处理“失败态”结果。then() 方法返回的“结果”会是下一个 .then() 方法链的“输入”,非常类似于“管道模式”。

new Promise 链式操作

3.Promise 构造函数本身一些方法:

resolve()、reject() 可以快速造出一个 Promise 对象:

resolve():

直接转换为“ 成功态” promise 对象

reject():

直接转换为“ 失败态” promise 对象

all():

all() 提供并行执行的能力

race():

race() 优先返回处理结果

============================

Async-await 异步解决方案:

async/await 是基于 Promise 实现的,不能用于普通的回调函数。

async/await 使得异步代码看起来像是同步的(“异步代码同步化”

1.  Async/await 使用原则

(1)凡是在函数前面声明了 async 标记的函数,在执行后都会自动返回一个 Promise 对象

async 标记的函数,函数执行结果为 promise 对象

(2)await 必须在 async 函数里面使用,不能单独使用。

(3)await 后面必须返回一个 promise 对象,否则不会出现“等待”,直接执行接下来语句。

async/await 使用案例 console 结果

2.使用 async/await 好处:

代码简洁,不需要再写 .then, 不需要处理 promise(resolve,reject),还避免了嵌套代码。

相关文章

  • Javascript 之异步请求

    )异步编程模块在前端中,经历了 XHR 到 jquery 封装的 Ajax 都在试图解决异步编程中的问题。传统的 ...

  • JavaScript异步编程好文摘要

    JavaScript之异步编程简述JavaScript异步编程

  • [JavaScript] (Day-20) - AJAX 简介

    AJAX 不是 JavaScript 的规范,而是用 JavaScript 执行异步网络请求,缩写为:Asynch...

  • AJAX

    同步和异步 异步的javascript和xml就是AJAX,不用全部重新加载,可以实现异步请求,局部刷新的功能。 ...

  • Java中级(七)

    一、传统的web请求 二、异步的web请求1.什么是ajaxAsynchronous Javascript And...

  • Ajax异步请求[17.7.10]

    Ajax异步请求 Ajax全称为Asynchronous Javascript and XML。通过Ajax实现了...

  • 2018-11-27

    AJAX AJAX是什么??? Asynchronous JavaScript & XML(js请求XML异步的技...

  • [JavaScript] (Day-28) - jQuery

    用JavaScript写 AJAX 前面已经介绍过了,主要是用JavaScript执行异步网络请求用jQuery的...

  • Ajax get请求GitHub API接口

    AJAX用于异步请求。AJAX = 异步 JavaScript 和 XML。 AJAX 是一种用于创建快速动态网页...

  • 取消Javascript异步请求

    普通的ajax很少会涉及到需要取消请求的操作,但是在定时(setInterval)发送异步请求的时候,或者频繁切换...

网友评论

      本文标题:Javascript 之异步请求

      本文链接:https://www.haomeiwen.com/subject/kuizqrtx.html