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接口的更多相关文章

  1. java—将查询的结果封装成List<Map>与用回调函数实现数据的动态封装(44)

    手工的开始QueryRunner类.实现数据封装: MapListHandler MapHandler BeanListHandler BeanHandler 第一步:基本的封装测试 写一个类,Que ...

  2. 异步编程(回调函数,promise)

    一.回调函数 ①概念:一般情况下,程序会时常通过API调用库里所预先备好的函数.但是有些库函数却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务.这个被传入的.后又被调用的函数就称为回调函 ...

  3. js中的回调函数 和promise解决异步操作中的回调地狱问题。

    回调函数 : 函数作为参数传递到另外一个函数中.简单数据类型和引入数据类型中的数组和对象作为参数传递大家肯定都不陌生,其实引用数据类型中的函数也是可以的. 事实上大家见到的很多,用到的也很多,比如jQ ...

  4. js中回调函数,promise 以及 async/await 的对比用法 对比!!!

    在编程项目中,我们常需要用到回调的做法来实现部分功能,那么在js中我们有哪些方法来实现回调的? 方法1:回调函数 首先要定义这个函数,然后才能利用回调函数来调用! login: function (f ...

  5. Vue实例中封装api接口的思路 在页面中用async,await调用方法请求

    一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时  接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...

  6. vue封装API接口

    第一步: 首先引入axios 然后创建两个文件夹api和http http.js 里面的 1 import axios from 'axios';//引入axios 2 3 //环境的切换 开发环境( ...

  7. python3封装Api接口

    注:本篇的代码和语法基于Python3.5环境,下面将用到Python 的Flask框架 封装接口主要讲静态接口(无参数传入).动态接口(有参数传入,不同参数返回的信息不同).针对动态接口有三种传参方 ...

  8. ES6入门之Promise对象

    1. Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理.更强大. 1.1 什么是Promise 简单来说就是一个容器,里面保存着某个未来才会结 ...

  9. 前端笔记之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 ...

随机推荐

  1. 九、async、future、packaged_task、promise

    std::async.std::future创建后台任务并返回值. 希望线程返回一个值. std::async是个函数模板,用来启动一个异步任务,返回一个std::future对象 异步任务:自动创建 ...

  2. spring+cxf

    里面有http://127.0.0.1:8081/dcs/soap/cls       http://127.0.0.1:8081/dcs/soap/cms       http://127.0.0. ...

  3. StrictMode 严格模式

    StrictMode: 帮助程序员避免在主线程上执行耗时操作: 启动级别: 1. 启动线程级别:   setThreadPolicy() 2. 启动应用级别 :  setVmPolicy() —— 对 ...

  4. 本地项目关联到远程git仓库

    本地项目关联到远程git仓库 场景是这样的:在gitee-code上新建一个项目,gitee会帮你把项目初始化,初始化之后会根据你的选择生成默认的说明文件和gitignore文件.这个时候你就可以复制 ...

  5. sql优化工具SQLAdvisor的安装

    原文地址:https://www.cnblogs.com/beliveli/articles/6541936.html 本机安装包路径: D:\share\src\linux-mysql\sqlAdv ...

  6. 深入浅出HashMap

    /** *@ author ViVi *@date 2014-6-11 */ Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.希望通过仪器讨论.共同提高~ 1 ...

  7. day64 views文件

    from django.shortcuts import HttpResponse, render, redirect from app01 import models # Create your v ...

  8. 恐怖的奴隶主(bob)

    题目描述 小L热衷于undercards. 在undercards中,有四个格子.每个格子要么是空的,要么住着一只BigBob. 每个BigBob有一个不超过k的血量:血量减到0视为死亡.那个格子随即 ...

  9. 在docker中使用composer install

    服务器上docker中没有装composer,只有项目中有composer.phar文件,但是又需要composer来管理依赖,我才接触docker 和 php的composer,希望把解决这个问题的 ...

  10. jsonp详细原理之一

    /*script标签是不存在跨域请求的,类似的还有img,background:url,link 你可以想象一下,平时的这些标签都是可以直接引入外部资源的,所以是不存在跨域问题的*/ function ...