这里不再解释什么是 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);
}
})
}
})

通过这种方式,我们就可以解决异步数据的获取问题。

最新文章

  1. SQL语句实现Split并合并查询结果
  2. [OSG]矩阵运算
  3. Failed deleting my ephemeral node
  4. GCD中使用dispatch_after函数延迟处理任务
  5. (八)shell中的循环结构
  6. Android移动应用开发中常见的经验技巧总结
  7. redis集群的搭建
  8. myeclipse 项目运行时报错:运行项目时报错:Could not publish server configuration for Tomcat v6.0 Server at localhost. Multiple Contexts have a"/"
  9. 高度关注!国务院对A股发出强烈信号↓
  10. VB中的GDI编程-1 设备环境DC
  11. YourSQLDba介绍
  12. 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习
  13. react生命周期-新增与替换
  14. spiflash
  15. Django--Managers
  16. mvc 按钮权限控制
  17. 【XSY1262】【GDSOI2015】循环排插 斯特林数
  18. Fabric的settings用法
  19. Luogu P1447 [NOI2010]能量采集
  20. hdoj:题目分类

热门文章

  1. DomainObjectUtility
  2. ! Failed at the chromedriver@2.35.0 install script.
  3. ss证书问题
  4. spring注解开发:bean的作用域与懒加载
  5. vue中关于checkbox数据绑定v-model
  6. BUUCTF Youngter-drive
  7. html中a标签伪类的优先级与顺序
  8. bash date format
  9. python安装pika模块rabbitmq
  10. [web设计]带有方向感应的hover effect