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