首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【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.1K80
您找到你想要的搜索结果了吗?
是的
没有找到

Vue 09.前后端交互

前后端交互模式 接口调用方式 原生ajax 基于jQueryajax 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

6K30

jquery中ajax参数详解

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

2.1K30

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.1K20

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() 数组元素倒叙,返回值为倒叙之后数组

1.4K10

Ajax详解

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

2K50

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 – 同时您能够把这些外部数据直接载入网页被选元素中。

4.6K10

Ajax第一节

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

3.9K20

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 参数。

1.6K00

原生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方法)         这里用到了表单序列化,表单序列化之后再传递给后台,序列化内容见博客“表单序列化

6.2K21

ajax参形式

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

4.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较慢但安全性高。

67010

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

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

88810

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

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

1.4K40

30道高频JS手撕面试题

result; } 10.手动实现apply方法 /** * context: 要改变函数中this指向,写谁就是谁 * args:传递给函数实参信息 * this:要处理函数 fn...} } 12.ES5实现数组扁平化flat方法 思路: 循环数组每一个元素 判断该元素是否为数组数组的话,继续循环遍历这个元素——数组 不是数组的话,把元素添加到新数组中 let arr...实例 创建HMLHttpRequest异步对象 调用open方法,打开url,与服务器建立链接(发送前一些处理) 监听Ajax状态信息 xhr.status == 200,返回resolve状态 xhr.status...'); }; autoRun(); 20.ES5手动实现数组reduce 特点: 初始值不特殊处理:会默认使用数组第一个元素 函数返回结果会作为下一次循环prev 回调函数一共接受四个参数...,都会走到finally中,并且finally之后,还可以继续then(说明它还是一个then方法是关键),并且会将初始promise值原封不动递给后面的then.

2.2K30

Ajax第二节

获取响应内容 参数提取 参数名 参数类型 描述 值 默认值 type string 请求方式 get/post 只要不post,就是get url string 请求地址 接口地址 如果不地址,不发送请求...false:true; 完整版本 // 封装 ajax // 目的: 发送 get 或者 post 请求 // 参数: // type: 不post, 就按get处理 // url: 必须 // async...// 命名空间: 函数收录到一个对象中, 将来通过对象调用函数 var $ = { ajax: function (options) { // 参数处理 if (!...方法 jQuery为我们提供了更强大Ajax封装 $.ajax 参数列表 参数名称 描述 取值 示例 url 接口地址 url:"02.php" type 请求方式 get/post type:"get...为什么要使用模板引擎 我们通过ajax获取到数据后,需要把数据渲染到页面,在学习模板引擎前,我们做法是大量拼接字符串,对于结构简单页面,这么做还行 但是如果页面结构很复杂,使用拼串的话代码阅读性非常

3.4K50

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

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

1.7K40
领券