ajax 通过回调函数获取异步数据
2024-09-04 06:39:24
这里不再解释什么是 ajax,以及什么是异步的问题。
我们直接来问题,这里采用 jQuery 的 ajax 方法来获取数据。
先来看代码:
$(function () {
let db = '';
$.ajax({
url: 'http://api.douban.com/v2/movie/top250', // 豆瓣 api
async: true, // 异步获取数据
dataType: 'jsonp', // 豆瓣限制,必须采用跨域的方式获取数据
success(result) {
db = result;
},
error(err) {
console.log(err);
}
})
console.log(db);
})
来解释一下,我们首先定义一个变量 db,然后通过 ajax 异步的获取数据,最后打印出来。
而此时,打印结果为空
原因正是因为异步,当异步执行时,此时为非阻塞式,即,代码继续向下执行,所以,此时 db 仍是开始时,我们默认定义的空值。
那么,如何才能在这种情况下获取到 ajax 成功获取的数据呢,我们可以采用回调函数的方法来解决这个问题。
代码如下:
$(function () {
let db = ''; (function () { // 定义一个匿名自执行函数
getInfo(function () { // 执行 getInfo 函数,并将一个匿名函数当做参数传递过去
console.log(db);
})
})() function getInfo(callback) {
$.ajax({
url: 'http://api.douban.com/v2/movie/top250',
async: true,
dataType: 'jsonp',
success(result) {
db = result;
callback(db); // 执行传递过来的匿名函数
},
error(err) {
console.log(err);
}
})
}
})
通过这种方式,我们就可以解决异步数据的获取问题。
最新文章
- SQL语句实现Split并合并查询结果
- [OSG]矩阵运算
- Failed deleting my ephemeral node
- GCD中使用dispatch_after函数延迟处理任务
- (八)shell中的循环结构
- Android移动应用开发中常见的经验技巧总结
- redis集群的搭建
- myeclipse 项目运行时报错:运行项目时报错:Could not publish server configuration for Tomcat v6.0 Server at localhost. Multiple Contexts have a";/";
- 高度关注!国务院对A股发出强烈信号↓
- VB中的GDI编程-1 设备环境DC
- YourSQLDba介绍
- 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习
- react生命周期-新增与替换
- spiflash
- Django--Managers
- mvc 按钮权限控制
- 【XSY1262】【GDSOI2015】循环排插 斯特林数
- Fabric的settings用法
- Luogu P1447 [NOI2010]能量采集
- hdoj:题目分类