ES6新增promise(异步编程新解决方案)如何封装ajax?

news/2024/10/16 10:09:54 标签: es6, ajax, okhttp

1.什么是异步?


异步是指从程序在运行过程中可以先执行其他操作。


2.什么是promise?


Promise 是 ES6 引入的异步编程的新解决方案。语法上 Promise 是一个构造函数,用来封装异步 操作并可以获取其成功或失败的结果;

3.promise成功和失败的参数如何接收


1. Promise 构造函数: Promise (excutor) {};
2. Promise.prototype.then 方法;接收成功参数(then)
3. Promise.prototype.catch 方法;接收失败参数(catch)

4.Promise 封装 Ajax 请求:


使用原生进ajax封装:

// 请求地址:https://api.apiopen.top/getJoke 
			const p = new Promise(function(resolve, reason) {
				// 原生请求 
				// 1、创建对象 
				const xhr = new XMLHttpRequest();
				// 2、初始化 
				xhr.open("GET", "https://api.apiopen.top/getJoke");
				// 3、发送 xhr.send(); 
				// 4、绑定事件,处理响应结果 
				xhr.onreadystatechange = function() {
					// 判断状态 
					if (xhr.readyState == 4) {
						// 判断响应状态码 200-299 
						if (xhr.status >= 200 && xhr.status <= 299) {
							// 成功 
							resolve(xhr.response);
						} else {
							// 失败 
							reason(xhr.status);
						}
					}
				}
			});
p.then(function (value) { 
 console.log(value.toString()); 
 }, function (reason) { 
 console.log(reason); // 读取失败 
 }) 

使用jQuery进行封装:

const p = new promise(function(resolve, reject) {
				$.ajax({
					type: ,
					url: ,
					datatype: ,
					async: ,
					headers: {},
					data: {},
					success: (res) => resolve(res),
					error: (err) => reject(err)
				})
			})


http://www.niftyadmin.cn/n/5707709.html

相关文章

十一、Python基础语法(循环-for循环)

一、for 遍历 遍历&#xff1a;遍历就是从容器&#xff08;列表、字符串、元组、字典&#xff09;中将数据逐个取出。 语法&#xff1a; 循环的次数是由容器中数据的个数决定的。 每次循环从容器中取出一个数据保存到变量中。 容器中数据取完&#xff0c;遍历&#xff08;循…

PyArmor 加密python脚本

1. 使用教程 — Pyarmor 8.6.0 文档 PyArmor 是一个用于加密和混淆 Python 脚本的工具。 以下是 PyArmor 的基本用法&#xff1a; **一、安装** 可以使用 pip 命令进行安装&#xff1a; pip install pyarmor **二、加密单个脚本** 1. 假设你有一个名为 my_script.py 的 …

Flutter-发现局域网中的设备

前言 现在有一个需求&#xff1a;要能够获取到局域网中的遮阳帘设备。通过搜索发现flutter_mdns_plugin可以满足这个需求 Pub&#xff1a;flutter_mdns_plugin | Flutter package GitHub&#xff1a;https://github.com/terrabythia/flutter_mdns_plugin MDNS服务类型 要根据…

新生编程入门的方式探讨

关于如何编程入门&#xff0c;这是一个很好的问题。在上大学之前&#xff0c;并没有怎么接触电脑的我&#xff0c;也许可以谈一谈。 还记得在高中的时候&#xff0c;因为很多同学去网吧玩电脑打游戏&#xff0c;被学校开除&#xff0c;老师谆谆教诲大家不要去网吧&#xff0c;所…

Java @RequestPart注解:同时实现文件上传与JSON对象传参

RequestPart注解&#xff1a;用于处理multipart/form-data请求的一部分&#xff0c;通常用于文件上传或者处理表单中的字段。 java后端举例&#xff1a; PostMapping("/fileTest")public AjaxResult fileTest(RequestPart("file") MultipartFile file,Req…

nginx与apache相比

文章目录 架构并发处理能力静态内容处理动态内容处理配置复杂度稳定性 架构 Nginx&#xff1a;采用异步非阻塞的事件驱动架构&#xff0c;能够高效地处理大量并发连接。Apache&#xff1a;采用多进程模型&#xff0c;每个请求都会创建一个独立的进程&#xff0c;对于并发连接的…

博客|基于springBoot的精简博客系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 &#xff08;1&#xff09;个人中心 &#xff08;2&#xff09;管理员管理 &#xff08;3&#xff09;用户管理 &#xff08;4&#xff09;博客信…

c# 中List的介绍说明

一.List的定义说明 在C#中&#xff0c;List<T>是一个泛型类&#xff0c;它允许你创建一个元素类型为T的强类型列表。List<T>类位于System.Collections.Generic命名空间下&#xff0c;是.NET Framework的一部分。 二.List<T>的一些常用操作和方法 2.1添加元…