js获取异步方法里面的数据
这里介绍 五种方法(说白了本质 就三种)
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获取异步方法里面的数据的更多相关文章
- html中通过js获取接口JSON格式数据解析以及跨域问题
前言:本人自学前端开发,一直想研究下js获取接口数据在html的实现,顺利地找到了获取数据的方法,但是有部分接口在调用中出现无法展示数据.经查,发现时跨域的问题,花费了一通时间,随笔记录下过程,以方便 ...
- JS获取form表单数据
以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ...
- js获取列表多条数据(接口)
读取数据://ajax去服务器端校验 $.ajax({ type:"post", url:"http://", data:{deviceid:1}, dataT ...
- Angular7_获取异步方法里面的数据
1.回调函数 getName() { return '张三'; } getAsyncName() { setTimeout(() => { return 'async_张三'; }, ); } ...
- js获取地址栏中的数据
window.location.href:设置或获取整个 URL 为字符串window.location.pathname:设置或获取对象指定的文件名或路径window.location.search ...
- js获取后台map格式数据
后台: @RequestMapping("/dictList") @ResponseBody public Map<String, Object> positionLi ...
- js获取或判断任意数据类类型的通用方法(getDataType)和将NodeList转为数组(NodeListToArray)
function getDataType(any){ /* (1) Object.prototype.toString.call 方法判断类型: 优点:通用,返回"[object Strin ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
随机推荐
- Vue基础知识的巩固与学习
生命周期的解析和应用: Vue 实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom→渲染.更新→渲染.卸载等一系列过程,我们称这是 Vue 的生命周期.通俗说就是 Vue 实 ...
- laravel7 百度智能云检测内容及图片
1:百度智能云,获取AppID,API Key,Secret Key https://console.bce.baidu.com/ai/?_=1642339692640&exraInfo=ai ...
- CentOS8时间同步
CentOS8中默认已经不再支持ntpd软件包,同时也无法通过官方软件仓库安装, CentOS8上使用Chrony配置NTP服务器,用于同步时间. 它有两个程序,chrony和chronyd, chr ...
- python的matplotlib.pyplot绘制甘特图
博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简 ...
- 使用pyautogui自动在某网站投票的脚本
网页自动投票: # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan import re import pypercli ...
- Key-Value存储系统简介
Redis是一个Key-Value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类 ...
- C# WinForm 解决子窗体放大后,子窗体图标放大的问题
解决子窗体放大后,子窗体的图标占用主窗体的菜单栏的问题. C#子窗体最大化时, 那个图标跑到主窗体的前面去了, 造成界面不统一也不美观. 所以需要进行处理, 只要有主窗体的菜单ItemAdded事件中 ...
- 通过rem自适应屏幕尺寸
通过rem自适应屏幕尺寸 常用的前端单位 px px就是pixel的缩写,设备分辨率,物理像素 pt pt就是point的缩写,逻辑分辨率,逻辑像素 em 参考物是父元素的font-size,具有继承 ...
- 文字图片在wps中清晰化方法
在wps中双击图片出属性,然后再选择文字增强.选择对比增加即可.
- nacos底层原理
Nacos 为什么选择NacosNacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos 帮 ...