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

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()

最新文章

  1. Apache Spark技术实战之5 -- SparkR的安装及使用
  2. iOS大神牛人的博客集合
  3. 通过实验窥探javascript的解析执行顺序
  4. CentOS 安装 Chrome
  5. 打开10.10.3上SSD的TRIM-黑苹果之路
  6. 设计模式-结合Android代码
  7. easyui源码翻译1.32--DateTimeBox(日期时间输入框)
  8. JS中setTimeout()的使用方法具体解释
  9. ftp的port和pasv型号比较
  10. RE:通过移动端滑动手势实现数据加载
  11. ApplicationListener接口的生命周期
  12. 给echarts加个“全屏展示”
  13. tcp_nopush高性能
  14. 组件的 keep-alive 简介
  15. python pip安装报错: ConnectTimeoutError
  16. Django里面是文件静态化的方法
  17. 2017-2018-1 20155307《信息安全技术李冬冬》实验二——Windows口令破解
  18. MFC 单选按钮Radio使用注意
  19. Java堆空间溢出解决方法 Exception in thread &quot;main&quot; java.lang.OutOfMemoryError: Java heap space
  20. 【区间dp】【记忆化搜索】UVALive - 3516 - Exploring Pyramids

热门文章

  1. ASP.NET Core框架探索(一)
  2. 软件工程homework-003
  3. AT2300题解
  4. 理解HMM算法
  5. Mybatis的ResultMap对column和property
  6. Java基础——System类
  7. 三面面试官:运行 npm run xxx 的时候发生了什么?
  8. CF1553X Harbour.Space Scholarship Contest 2021-2022 (Div. 1 + Div. 2)
  9. 如何使用docker制作开发集成环境
  10. MindSpore尝鲜之Vmap功能