ES6-Promise承诺
1.扩展:ajax
1.1 代码如下
$.ajax({
url:'地址',
type:'get/post',
data:{},
dataType:'json/jsonp',
success:function(res){
//请求成功,接收返回值
}
})
1.2 概念
- ajax不能跨域请求
- 两个网址:协议 主域号 端口号 完全相同时,这时两个网址完全相同,任意其一不同,即为跨域请求
- 解决跨域:
- 1.jsonp:在$.ajax({dataType:'jsonp'}),需要后台支持jsonp形式
- 2.cors:需要后台配合
- 3.后台设置允许所有或指定网址能直接访问
- 简写形式:
- $.get(url,data,function(res){})
- $.post(url,data,function(res){})
2.jQuery里的Promise
2.1 个人理解
- 同步:同时只能做一件事 代码简单
- 异步:操作之间没有关系 同时请求进行多个操作,小程序中可用于请求数据api接口,代码更复杂,用同步一样的方式,来书写异步代码
- Promise.all([$.ajax(),$.ajax()]).then(result=>{alert('对了')},err=>{alert('错了')})
2.2 代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>高版本jquery中Promise</title>
<script src=" https://cdn.bootcss.com/jquery/3.5.0/jquery.js"></script>
<script>
// 高版本jquery中Promise自带封装函数
Promise.all([
$.ajax({
url: 'arr.txt',
dataType: 'json'
})
]).then(function(arr) {
alert('成功');
let [res1, res2] = arr;
alert(res1);
alert(res2);
}, function() {
alert('失败');
});
</script>
</head>
<body>
</body>
</html>
3.Promise怎么用
3.1 利用函数赋值来返回请求数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Promise怎么用</title>
<script src=" https://cdn.bootcss.com/jquery/3.5.0/jquery.js"></script>
<script>
let p = new Promise(function(resolve, reject) {
// 异步代码
// resolve——成功了
// reject——失败了
$.ajax({
url: 'arr.txt',
data: {},
dataType: 'json',
success: function(arr) {
//请求成功,接收返回值
resolve(arr);
},
error(err) {
reject(err);
}
});
});
// 原先js时
p.then(function() {
alert('成功');
}, function() {
alert('失败');
});
</script>
</head>
<body>
</body>
</html>
3.2 利用函数参数来进行promise操作返回请求数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Promise怎么用</title>
<script src=" https://cdn.bootcss.com/jquery/3.5.0/jquery.js"></script>
<script>
// 封成函数,进行参数传递即可
function createPromise(url) {
return new Promise(function(resolve, reject) {
// 异步代码
// resolve——成功了
// reject——失败了
$.ajax({
url: 'arr.txt',
data: {},
dataType: 'json',
success: function(arr) {
//请求成功,接收返回值
resolve(arr);
},
error(err) {
reject(err);
}
});
});
}
// let p1 = new Promise(function(resolve, reject) {
// // 异步代码
// // resolve——成功了
// // reject——失败了
// $.ajax({
// url: 'arr.txt',
// data: {},
// dataType: 'json',
// success: function(arr) {
// //请求成功,接收返回值
// resolve(arr);
// },
// error(err) {
// reject(err);
// }
// });
// });
// let p2 = new Promise(function(resolve, reject) {
// // 异步代码
// // resolve——成功了
// // reject——失败了
// $.ajax({
// url: 'arr.txt',
// data: {},
// dataType: 'json',
// success: function(arr) {
// //请求成功,接收返回值
// resolve(arr);
// },
// error(err) {
// reject(err);
// }
// });
// });
// 现在js时
Promise.all([
// p1, p2
// 简化操作
createPromise('arr.txt')
]).then(function(arr) {
alert('成功');
let [res1, res2] = arr;
alert(res1);
alert(res2);
}, function() {
alert('失败');
});
</script>
</head>
<body>
</body>
</html>
ES6-Promise承诺的更多相关文章
- ES6 Promise 异步操作
最近越来越喜欢与大家进行资源分享了,并且及时的同步到自己的园子内,为什么呢? 一.小插曲(气氛搞起) 在上个月末,由于领导的高度重视(haha,这个高度是有多高呢,185就好了),走进了公司骨干员工的 ...
- es6 promise 所见
一.Promise是什么? Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息:从本意上讲,它是承诺,承诺它过一段时间会给你一个结果. pro ...
- 通过 ES6 Promise 和 jQuery Deferred 的异同学习 Promise
Deferred 和 Promise ES6 和 jQuery 都有 Deffered 和 Promise,但是略有不同.不过它们的作用可以简单的用两句话来描述 Deffered 触发 resolve ...
- ES6 Promise 接口
构造函数 new Promise(function(resolve, reject){}); 构造函数接受一个函数(executor)作为参数,该函数在返回 Promise 实例之前被调用.函数的两个 ...
- Es6 Promise 用法详解
Promise是什么?? 打印出来看看 console.dir(Promise) 这么一看就明白了,Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方 ...
- ES6 Promise 全面总结
转载:点击查看原文 ES6 Promise对象 ES6中,新增了Promise对象,它主要用于处理异步回调代码,让代码不至于陷入回调嵌套的死路中. @-v-@ 1. Promise本质 Promise ...
- 微信小程序Http高级封装 es6 promise
公司突然要开放微信小程序,持续蒙蔽的我还不知道小程序是个什么玩意. 于是上网查了一下,就开始着手开发..... 首先开发客户端的东西,都有个共同点,那就是 数据请求! 看了下小程序的请求方式大概和a ...
- 解析ES6 Promise
ES6 Promise 概念之类的,大概读者都应该有所知道,接下来我们直入终点. 先让我们来看看什么是Promise吧,他是一个object,类,arry,function? 首先,学习它的时候应该讲 ...
- jquery Promise和ES6 Promise的区别
1. Deferred对象有resolve和reject方法,可以直接修改状态 jquery用Deferred实现了Promise规范,Deferred与ES6 Promise的最大区别是: Defe ...
- ES6 Promise对象then方法链式调用
then()方法的作用是Promise实例添加解决(fulfillment)和拒绝(rejection)状态的回调函数.then()方法会返回一个新的Promise实例,所以then()方法后面可以继 ...
随机推荐
- M - Little Pony and Harmony Chest 状压dp
M - Little Pony and Harmony Chest 怎么感觉自己越来越傻了,都知道状态的定义了还没有推出转移方程. 首先这个a的范围是0~30 这里可以推出 b数组的范围 0~60 ...
- 王颖奇 201771010129《面向对象程序设计(java)》第六周学习总结
实验六 继承定义与使用 实验时间 2018-9-28 1.目的与要求 理论部分: 继承(inheritance): 继承的特点:具有结构层次:子类继承了父类的域和方法. 主要内容: (1)类.子类.超 ...
- 【Spark】RDD(Resilient Distributed Dataset)究竟是什么?
目录 基本概念 官方文档 概述 含义 RDD出现的原因 五大属性 以单词统计为例,一张图熟悉RDD当中的五大属性 解构图 RDD弹性 RDD特点 分区 只读 依赖 缓存 checkpoint 基本概念 ...
- 【题解】[SCOI2015]小凸玩矩阵
题目链接 思路:题目要求变相解答一下,求出是否有n-k个数,不大于当前求的第k个数 而每一行每一列只能有一个数,就可以得到一个二分图的思路,边上的权值就是第i行第j列这个数的值 对于答案就是第k大的数 ...
- docker 修改镜像地址
一.直接设置 –registry-mirror 参数,仅对当前的命令有效 docker run hello-world --registry-mirror=https://docker.mirrors ...
- helm使用
helm 0. helm安装 基本上到github上面,下载二进制就行.mac的话用brew安装. https://github.com/helm/helm brew: brew install ku ...
- ssh别名登录,非常适合从跳板机登录其他主机
一般连主机会是这样的: ssh admin@IP 端口变了的话还要加上端口号 ssh admin@IP -p 10022 可以用ssh别名简化这个操作: vim .ssh/config 想要全局生效的 ...
- 最近关于pc 组装总结
1. 平台之争 amd 还是intel 这个时代,intel 的cpu已经领先amd 太多了.工艺上门,虽然amd 的u 一般都不锁倍频,但是oc的代价是要有一块堆料的主板,然后散热要牛逼,好的散热至 ...
- vue中事件代理
由于在vue实例内部,this指向了实例本身,所以在编写事件代理的时候,用e.currentTarget引用绑定事件代理的元素,e.target引用事件目标元素.刚刚不注意想用this引用代理元素报错 ...
- Flutter仿掘金点赞效果
老孟导读:今天分享一下如何实现掘金点赞效果,这不仅仅是一篇技术文章,还是一篇解决问题思路的文章,遇到一个需求时,如何拆分需求,然后一步一步实现,这个过程比单纯的技术(此文)更有含金量. 先来看一下掘金 ...