首页
学习
活动
专区
圈层
工具
发布

【javascript】异步编年史,从“纯回调”到Promise

(..)是某个库中的某个Ajax函数 ajax( "http://some.url.1", foo ); ajax( "http://some.url.2", bar ); 这段代码比前面那段“链式”里的回调地狱好懂多了...(..)是某个库中的某个Ajax函数 ajax( "http://some.url.1", foo ); ajax( "http://some.url.2", bar ); 在这里,我们设置了一个flag...(表示异步操作成功了),当调用 reject方法的时候, 会把Promise对象的状态从Pending变为Rejected,表示异步操作失败了, 而如果这两个函数没有调用,则Promise对象的状态一直是...,传递给下一个异步操作 getJSON('/post/1.json').then(function(post) {   return getJSON(post.commentURL); }).then(...而如果任意一个数组里的子Promise失败了, 这个“大Promise”的状态会转为Rejected, 并且将错误参数传递给then的第二个回调 竞态 可以用Promise.race方法简单地解决 romise.race

1.5K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    鸿蒙应用开发从入门到入行 - 篇7:http网络请求

    调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,解析返回结果。当该请求使用完毕时,调用destroy()方法主动销毁。...let httpRequest = http.createHttp();// 3. 调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。...:数字,传几代表获取几条笑话响应体:返回一个字符串数组请求代码如下Button('发get请求') .onClick(() => { // 创建请求对象...但是为避免将来有问题,请严格按官方文档推荐:一个对象对应一个请求,用完即销毁)这里顺便给各位同学一个小作业:把本接口得到的笑话,渲染到界面post请求接口:一个注册用户的接口url: http://ajax.zll.cool...所以真实开发场景下,一般都会对http请求做封装,方便自己调用。但是自行封装,需要考虑的情况过多,例如get与post请求参数格式一般不一样。甚至post请求也分urlencoded与josn格式。

    1K20

    Vue 09.前后端交互

    前后端交互模式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios 异步 JavaScript的执行环境是「单线程」 所谓单线程,是指JS引擎中负责解释和执行JavaScript...,所有任务完成后才得到结果 Promise.all方法接受一个数组作参数,数组中的对象(p1、p2、p3)均为promise实例(如果不是一个promise,该项会被用Promise.resolve转换为一个...它的状态由这三个promise实例决定 .race() 并发处理多个任务,只要有一个完成就会得到结果 Promise.race方法同样接受一个数组作参数。...的形式传参 fetch('http://localhost:3000/books?...response对象,其中包括返回的一堆原始字节,这些字节需要在收到后,需要我们通过调用方法将其转换为相应格式的数据,比如JSON,BLOB或者TEXT等等 fetch('http://localhost

    6.6K30

    SSM学习笔记之SpringMVC

    4.4.1 请求行传值 表单提交method="get" URL提交 $.ajax请求的url传值 $.ajax({ url:这里拼接url,把参数放url就是请求行传值, type:...$.ajax封装请求头数据 $.ajax({ url:"book/add", type:"post", headers:{ 这里请求头传值 },...$.ajax封装请求体数据 $.ajax({ url:"book/add", type:"post", headers:{ 这里请求头传值 },...异步请求:ajax请求 使用response中的输出流进行响应 /** 控制器方法的返回类型为void 控制器方法添加HttpServletResponse response 参数 在方法中通过...控制器方法的返回类型设置为响应给ajax请求的对象类型 在控制器方法前添加一个@ResponseBody注解,将返回的对象转换成json格式返回给ajax请求 如果一个控制器类中的所有方法都是响应ajax

    8.8K20

    jquery中ajax参数详解

    beforeSend(XHR) 类型:Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。...请求失败时调用此函数。 有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。...并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。 success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。...数据仅仅简单的将 XMLHttpRequest 的 responseText 或 responseHTML 属性传递给 success 回调函数。...发送数据到服务器 默认情况下,Ajax 请求使用 GET 方法。如果要使用 POST 方法,可以设定 type 参数值。这个选项也会影响 data 选项中的内容如何发送到服务器。

    3.1K30

    Ajax详解

    未调用open()方法 1:启动。已经调用open()方法,未调用send()方法 2:发送。已经调用send()方法,未接收到响应 3:接收。已经接收到部分数据 4:完成。...二、jquery中的ajax 先写一个简单例子 $.ajax({ type : 'post', url : 'http://localhost:8080/devLean...为正确的函数名,以执行回调函数  $.ajax 中的contentType 在http 请求中,get 和 post 是最常用的。...例如在 ajax 中你要传一个复杂的 json 对像,也就说是对象嵌数组,数组中包括对象,兄果你这样传: { data: { a: [{ x: 2 }] } } 这个复杂对象..., application/x-www-form-urlencoded 这种形式是没有办法将复杂的 JSON 组织成键值对形式 ,你传进去可以发送请求,但是服务端收到数据为空, 因为 ajax 没有办法知道怎样处理这个数据

    2.5K50

    Php面试问题_php面试常问面试题

    /json数据类型 success :当Ajax状态码为4且响应状态码为200时所触发的回调函数 type :发送的http请求,可以是get,也可以是post url :请求的url地址 3、什么时候用同步请求...__clone(),当对象复制完成时调用 __autoload(),尝试加载未定义的类 __debugInfo(),打印所需调试信息 5、简述get方法和post方法 ① 传参方式不同 get请求是在url...的尾部传递参数的 post请求是在请求空白行的位置传递参数的 ② 传参的大小不同 get请求,其传参的最大值为2kb post请求理论上是没有任何限制的,但是实际应用中,受到php.ini文件的影响,一般为...2M ③ 传参的类型不同 get请求,只能传递字符串 post请求,不仅可以传递字符串还可以传递二进制数据 ④ 安全性不同 相对而言,post请求的安全性要略高于get请求 其请求头参数不同 6、PHP...In_array:判断数组中是否存在某个元素 array_reverse() 将数组中的元素倒叙,返回值为倒叙之后的数组。

    2K10

    springmvc笔记_SpringMVC优点

    method=delete MVC框架要做哪些事情 将url映射到java类或java类的方法 . 封装用户提交的数据 . 处理请求–调用相关的业务处理–封装响应数据 ....HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。...其本质是通过实现Map接口并调用接口中的方法完成的。 JSONArray 代表 json 对象数组 内部是有List接口中的方法来完成操作的。...JSON代表 JSONObject和JSONArray的转化 JSON类源码分析与使用 仔细观察这些方法,主要是实现json对象,json对象数组,javabean对象,json字符串之间的相互转化。...通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON – 同时您能够把这些外部数据直接载入网页的被选元素中。

    5.3K10

    Ajax第一节

    获取响应内容 参数提取 参数名 参数类型 描述 传值 默认值 type string 请求方式 get/post 只要不传post,就是get url string 请求地址 接口地址 如果不传地址,不发送请求...方法 jQuery为我们提供了更强大的Ajax封装 $.ajax 参数列表 参数名称 描述 取值 示例 url 接口地址 url:"02.php" type 请求方式 get/post type:"get...原理:服务端返回一个定义好的js函数的调用,并且将服务器的数据以该函数参数的形式传递过来,这个方法需要前后端配合 script 标签是不受同源策略的限制的,它可以载入任意地方的 JavaScript 文件...} http://www.api.com/testjs.php"> 缺点:后端必须知道前端声明的方法的名字,后端才能调用。...在服务端返回一个函数的调用,将数据当前调用函数的实参。

    4.9K20

    原生JS--Ajax

    原生Ajax: Ajax基础: --ajax:无刷新数据读取,读取服务器上的信息 --HTTP请求方法:     --GET:用于获取数据,如浏览帖子     --POST:用于上传数据,如用户注册...--readyState属性:请求状态          --0(未初始化)还没有调用open方法          --1(载入)已经调用send()方法,正在发送请求          --2(载入完成...           alert('成功:'+oAjax.responseText);          }        }      } 将原生Ajax封装成一个函数使用,最终编写的原生Ajax...,如都是utf8 2--缓存,阻止缓存(经常改变的数据等,不能够缓存.主要用于GET方法)   --传参时在路径后面加?...} 52 } 53 } 54 示例2:原生Ajax向服务器发送数据(即POST方法)         这里用到了表单序列化,将表单序列化之后再传递给后台,序列化内容见博客“表单序列化

    7.9K21

    jQuery - Ajax详解分析

    jQuery - Ajax详解分析 jQuery 库拥有完整的 Ajax 兼容套件 最核心函数 jQuery.ajax() ajax() 方法通过 HTTP 请求加载远程数据。...该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, .post等(我们也只掌握这一种)。 .ajax() 返回其创建的 XMLHttpRequest 对象。...beforeSend(XHR) 类型:Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。...complete(XHR, TS) 类型:Function 请求完成后回调函数 (请求成功或失败之后均调用)。 参数: XMLHttpRequest 对象和一个描述请求类型的字符串。...提供 data 和 type 两个参数:data 是 Ajax 返回的原始数据,type 是调用 jQuery.ajax 时提供的 dataType 参数。

    2.3K00

    脚本化HTTP 取得响应 指定请求

    其他 一些更多的通信协议,包括rpc(远程过程调用)允许运行于一台计算机的程序调用另一台计算机程序的子程序。如果面向对象编程,则远程过程调用为远程调用,远程方法调用。...ajax 在本地写js的时候,必须搭建一个服务器其AJAX才能工作 原因:因为文件的协议为file而本地的请求的协议为http,由于同源策略的影响,导致无法使用http协议的文件,故本地无法直接使用ajax...最后调用send()方法,完成发送。 顺序问题:必须先调用open后调用send()才方可。...); // 回调函数,将返回的DOM树,传递给回调函数 } }; request.send(null); // 发送 } 注意,该方式为异步的,send方法不会阻塞其他操作 同步响应 由于其下载的问题...方法直接open使用第三个参数为false 响应解码 当服务器响应的为XML文档的时候,其返回的值为document对象,能使用操作节点的方式,对其进行操作 当服务器发送对象或者数组的结构化数据,如JSON

    2K40

    AJAX基础

    通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本(text)、HTML、XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中...发送请求前调用的函数 success function 请求成功后调用的函数参数result:可选,由服务器返回的数据 error function 请求失败时调用的函数 complete function...请求完成后(无论成功还是失败)调用的函数 contentType String 默认值: "application/x-www-form-urlencoded"。...{           // 请求失败后要执行的代码     } } ); var data ={} 后台响应 使用ajax进行增删改查时get、post方法都能实现其功能。...get方法数据传输速度快但不能传大数据,传输不安全,post方法适用于传输大数据,传输速度比get较慢但安全性高。

    91910

    ajax传参形式

    JSON数据+额外参数 参考文章 ajax传参形式 介绍 $.ajax()是jQuery发送异步请求的方式,简化了原生js的操作过程。...注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。 timeout Number 设置请求超时时间(毫秒)。此设置将覆盖全局设置。...注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend Function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。...complete Function 请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。...error Function (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。 这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。

    5.4K40

    如何合理构造一个Uploader工具类(设计到实现)

    为什么需要用一个数组去维护文件,因为从需求上看,我们的每个文件需要一个状态去追踪,所以我们选择内部维护一个数组,而不是直接将文件对象交给上层逻辑。...上文中的changeHanler,来单独分析实现,这里我们要读取文件,响应实例choose事件,将文件列表作为参数传递给loadFiles。..._post(file) }) } } 当中涉及到的_post函数,我们往下再单独实现。 交互方法 这里都是些供给外部操作的方法,实现比较简单就直接上代码了。...我们需要额外编写两个函数处理http响应:parseSuccess、parseError _post (file) { if (!...是否应该提供可重写ajax函数的配置项? 参数是否应该可传入一个函数动态确定? ...

    1.1K10

    全面分析前端的网络请求方式

    send 用于发送 HTTP请求,即调用该方法后 HTTP请求才会被真正发出,用法: xhr.send(param) param:http请求的参数,可以为 string、Blob等类型。...abort 用于终止一个 ajax请求,调用此方法后 readyState将被设置为 0,用法: xhr.abort() setRequestHeader 用于设置 HTTP请求头,此方法必须在 open...六、jQuery对Ajax的封装 在很长一段时间里,人们使用 jQuery提供的 ajax封装进行网络请求,包括 $.ajax、$.get、$.post等,这几个方法放到现在,我依然觉得很实用。...这种 GET或 POST请求中 URL参数里的 "callback"部分。 error 类型: Function 。请求失败时调用此函数。...例如在 Ajax中你要传一个复杂的 json 对像,也就说是对象嵌数组,数组中包括对象,你这样传: application/x-www-form-urlencoded 这种形式是没有办法将复杂的 JSON

    2.6K40

    SpringMVC--框架学习

    HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器) Controller执行完成返回ModelAndView HandlerAdapter将controller...但是反复调用json转换方法过于繁琐,因此SpringMVC可以帮助将返回的对象或集合直接转化为JSON格式的数据,这需要在spring-mvc.xml中配置处理器映射器: <!...username=花猪&age=18 接收来的两个参数,会直接进行User类封装: image.png 数组类型参数 Controller中的业务方法数组名称与请求参数的name一致,参数值会自动映射匹配...:将前端控制器无法找到的请求资源(静态)交由原始的容器处理。...date=2022-1-10 后台控制台打印信息,传参成功: image.png Servlet相关API获取 SpringMVC支持使用原始ServletAPI对象作为控制器方法的参数进行注入,常用的对象如下

    1.3K10
    领券