这里介绍  五种方法(说白了本质 就三种)

1.callback回调函数 

    function getData(callback){
setTimeout(()=>{
let name = '哈哈哈,我是callback回调函数  获取异步方法里面的数据';
callback(name)
},1000)
}

getData(data=>{
console.log(data)
})

2. promise来处理异步   // resolve成功的回调函数     // reject失败的回调函数

      var p = new Promise((resolve,reject)=>{
//ajax
setTimeout(()=>{
let n = Math.random()
if(n<0.5){
resolve(n)
}else{
reject(`${n}大于了0.5所以失败`)
}
  //三元表达式写法 Math.random()<0.5?resolve(n):reject(`${n}大于了0.5所以失败`)
},2000)
})
p.then((data)=>{
console.log(`${data},,,,我是promise来处理异步`)
})

3.promise结合第一种方法

       // 第三种
function getData(resolve,reject){
setTimeout(()=>{
let name = '我是第三种获取异步方法里面的数据';
resolve(name)
},1000)
}
var p1 = new Promise(getData) p1.then(data=>{
console.log(`${data}我是第三种`)
})

 4. async  await  方法

async: 把函数变成异步函数,;     await = async wait,  等待异步函数执行完成  (await一定要写在 async异步方法中)

    // 第四种 async  await
async function getdata2(){ return 'await,async,我是第四个方法'
}
async function test (){
let d = await getdata2()
console.log(d)
}
test()

5.async  await  方法 和promise结合

// 第五种 async  await 结合Promise

        function getdata3(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
let name = '我是第五种方法';
resolve(name)
},1000)
})
}
async function test3(){
let aa = await getdata3()
console.log(aa)
}
test3()

js获取异步方法里面的数据的更多相关文章

  1. html中通过js获取接口JSON格式数据解析以及跨域问题

    前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...

  2. JS获取form表单数据

    以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ...

  3. js获取列表多条数据(接口)

    读取数据://ajax去服务器端校验 $.ajax({ type:"post", url:"http://", data:{deviceid:1}, dataT ...

  4. Angular7_获取异步方法里面的数据

    1.回调函数 getName() { return '张三'; } getAsyncName() { setTimeout(() => { return 'async_张三'; }, ); } ...

  5. js获取地址栏中的数据

    window.location.href:设置或获取整个 URL 为字符串window.location.pathname:设置或获取对象指定的文件名或路径window.location.search ...

  6. js获取后台map格式数据

    后台: @RequestMapping("/dictList") @ResponseBody public Map<String, Object> positionLi ...

  7. js获取或判断任意数据类类型的通用方法(getDataType)和将NodeList转为数组(NodeListToArray)

    function getDataType(any){ /* (1) Object.prototype.toString.call 方法判断类型: 优点:通用,返回"[object Strin ...

  8. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  9. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

随机推荐

  1. java 注释与标识符

    JAVA基础 注释与标识符 注释 书写注释是一个非常好的习惯 三种注释: 单行,多行,文档 .单行 ://注释 .多行:/* 注释 / .文档** 注释 */ 标识符 1. 关键字 2.标识符注意点 ...

  2. (转载)字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8

  3. BSOJ6388题解

    看上去就很神秘...考虑建出图论模型. 我们将一张牌的两面 \(a,b\) 连一条边. 考虑一个连通块的意义是什么. 边是一张牌,容易发现,如果连通块是一棵树,那么选择一个根节点相当于可以打出除了根节 ...

  4. AT2300题解

    两种做法都说一说吧... 题意很明确. 1.数论分块 对于一个 \(d\) 和给定的 \((l,r)\),\((l,r)\) 对其造成贡献的条件很明显是 \(\lfloor \frac {l-1} d ...

  5. LGP1397题解

    并不是那么的有意思呢 首先,我们可以将题目给出的地推式看做一个一次函数 \(k * x+b\),来思考一个问题,如果给出两个一次函数 \(F(x)\) 和 \(G(x)\),那么 \(F(G(x))\ ...

  6. CentOS7.5安装Ansible

    安装ansible: 查看可用的ansible版本: yum list|grep ansible   方法一: 系统可用ansible版本太低,安装epel源: yum install epel-re ...

  7. python3 爬虫5--分析Robots协议

    1Robots协议 Robots协议告诉了搜索引擎和爬虫那些页面可以抓取,那些不可以,通常是存放在robots.txt文件里面,位于网站的根目录下 robots.txt中内容的示范: User-age ...

  8. Oracle入门基础(一)一一基本查询

    SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...

  9. SpringBoot 上传文件大小限制,SizeLimitExceededException: the request was rejected because its size (64042302) exceeds the configured maximum (10485760)

    对应的配置属性文件:org.springframework.boot.autoconfigure.web.servlet.MultipartProperties 由于我是yml文件,所以直接这样定义就 ...

  10. ConcurrentHashMap 的并发度是什么 ?

    ConcurrentHashMap 的并发度就是 segment 的大小,默认为 16,这意味着最多同时可以有 16 条线程操作 ConcurrentHashMap,这也是ConcurrentHash ...