回调函数 和 promise对象,及封装API接口
1、回调函数:https://blog.csdn.net/baidu_32262373/article/details/54969696
注意:回调函数不一定需要用到 return。如果浏览器支持Promise对象,则可以不用回调函数实现程序。(个人感觉,Promise实现,就像把回调函数难道了外面,通过l链式结构实现)
引申:同步程序封装后,通过return返回值,就可以把需要的值给别人。异步程序封装后,只能通过回调函数把值给别人。不然无法获得预期的值
2、请求接口的管理:一般一个接口,可能会出现多个地方使用。如果把请求接口放在文件里,页面中使用这个接口,只要传入参数调用这个方法就可以了,及请求后的 执行的程序(即回调函数)。这样可以便于管理所有的接口。
function getStausList(obj,Callback) {
axios.get('./json/stausList.json').then(
function(res){
Callback(res.data); // axios.js中的ajax请求返回的数据是放在 res.data 对象里面的,而不是res
},
function(){
alert('连接失败')
}
)
}
getStausList(null,function(res){ // res 就是这个请求返回来的数据
// do sthing
})
3、Promise的then里面的函数要用到then方法的,通过return 操作符 抛出去,就可以让所有的then方法都是链式的写法。这样不管是从可读性还是,逻辑清晰上都是好的。
abc().then( // abc是一个Promise对象( 如axios方法 )
(res) => {
return rqubb() // rqubb 也是一个Promise对象 ( 如axios方法)
} ).then(
(res) => { // 这里res就是 rqubb 传入的参数了
// do sthing
}
)
promise视频学习笔记
1、
感悟:回调函数中里面 无法把里面值通过 return 返回出去,但是promise中的 resolve()可以把里面的值弄出来,传递到then的函数中。
回调函数之所以会出现回调地狱的问题,就是回调函数中值无法弄出来,只能不断的嵌套使用。但是 promise + async/await 解决了这个问题,从此js没有这个问题。
回调函数 和 promise对象,及封装API接口的更多相关文章
- java—将查询的结果封装成List<Map>与用回调函数实现数据的动态封装(44)
手工的开始QueryRunner类.实现数据封装: MapListHandler MapHandler BeanListHandler BeanHandler 第一步:基本的封装测试 写一个类,Que ...
- 异步编程(回调函数,promise)
一.回调函数 ①概念:一般情况下,程序会时常通过API调用库里所预先备好的函数.但是有些库函数却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务.这个被传入的.后又被调用的函数就称为回调函 ...
- js中的回调函数 和promise解决异步操作中的回调地狱问题。
回调函数 : 函数作为参数传递到另外一个函数中.简单数据类型和引入数据类型中的数组和对象作为参数传递大家肯定都不陌生,其实引用数据类型中的函数也是可以的. 事实上大家见到的很多,用到的也很多,比如jQ ...
- js中回调函数,promise 以及 async/await 的对比用法 对比!!!
在编程项目中,我们常需要用到回调的做法来实现部分功能,那么在js中我们有哪些方法来实现回调的? 方法1:回调函数 首先要定义这个函数,然后才能利用回调函数来调用! login: function (f ...
- Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时 接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...
- vue封装API接口
第一步: 首先引入axios 然后创建两个文件夹api和http http.js 里面的 1 import axios from 'axios';//引入axios 2 3 //环境的切换 开发环境( ...
- python3封装Api接口
注:本篇的代码和语法基于Python3.5环境,下面将用到Python 的Flask框架 封装接口主要讲静态接口(无参数传入).动态接口(有参数传入,不同参数返回的信息不同).针对动态接口有三种传参方 ...
- ES6入门之Promise对象
1. Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理.更强大. 1.1 什么是Promise 简单来说就是一个容器,里面保存着某个未来才会结 ...
- 前端笔记之ES678&Webpack&Babel(下)AMD|CMD规范&模块&webpack&Promise对象&Generator函数
一.AMD和CMD规范(了解) 1.1传统的前端开发多个js文件的关系 yuan.js中定义了一个函数 function mianji(r){ return 3.14 * r * r } main.j ...
随机推荐
- cf1278D——树的性质+并查集+线段树/DFS判环
昨天晚上本来想认真打一场的,,结果陪女朋友去了.. 回来之后看了看D,感觉有点思路,结果一直到现在才做出来 首先对所有线段按左端点排序,然后用并查集判所有边是否联通,即遍历每条边i,和前一条不覆盖它的 ...
- Bugku | Easy_vb
载入ida,直接搜‘ctf’就有了,坑点是不要交“MCTF{XXX}”,要交“flag{XXXX}”
- 多列布局(column)
容器的属性 column-width: auto | < length > .给列定义一个最小宽度(min-width). auto: 列宽由其他元素决定. length: 显式设置最小宽 ...
- python中遍历列表字典元组
遍历列表,打印:我叫name,今年age岁,家住dizhi,电话phone lt = [ {'name':'小王', 'age':18, 'info':[('phone', '123'), ('diz ...
- Jmeter登录中的cookie问题
Jmeter中发送多个http请求,由于后面的请求需要登录后才能获取到数据,所以前面先要发送登录请求. 登录时会写cookie到本地,后面的请求中会读取cookie中的JSESSIONID,若后面的请 ...
- 1.OpenCV数据类型
基础类型 1.模板类cv::Vec<> 固定向量类,维度已知的小型向量——处理效率高 2.cv::Point类(Point2i,Point2f,Point2d;Point3i,Point3 ...
- 基于名称快速定位文件和文件夹的搜索工具Everything和dll依赖查询工具Dependency Walker
在工作中有时需要定位头文件.lib库文件.dll文件等的路径,自己去一个个盘符查找实在太麻烦,最近发现使用Everything这款工具很方便,下载地址为:下载 Everything 1.4.1.935 ...
- 洛谷 P1197 [JSOI2008]星球大战——并查集
先上一波题目 https://www.luogu.org/problem/P1197 很明显删除的操作并不好处理 那么我们可以考虑把删边变成加边 只需要一波时间倒流就可以解决拉 储存删边顺序倒过来加边 ...
- intellij中maven不能导入pom文件中指定的jar包
pom文件配置依赖的jar包版本,可以有默认的版本,如下 <profiles> <profile> <id>default_version</id> & ...
- mac bash上显示git分支与状态
主要实现 显示当前路径 显示当前所在分支 显示当前修改状态 = 表示一个干净的分支 ~ 表示文件有改动 # 表示已commit 但未 push 通过网上搜索和自己根据实际需要修改的代码如下: .bas ...