js中一个打印数据的问题

0 0 javascript
■-落小兮
■-落小兮

声望值:140 0人

2018-12-21 11:11:44 提问

关注 0关注

收藏 0收藏, 13浏览

apis.js代码如下

import $ from 'jquery'

let result = {
  news: []
}

$.ajax({
  url: 'http://sayer.dev/index.php?s=/article/get_lists',
  method: 'get',
  success: res => {
    result.news = res.data
  }
})

module.exports = result

模板main.pug内容 如下

-const results = require('../core/apis.js')
-console.log(results)
-console.log(results.news)

两次输出的结果如下:
图片描述

第一次打印的时候 有news的这个数组的 第二次就没有了请问是什么问题

请先 登录 后评论

2个回答

  • 夏未央78声望 2018-10-15 15:55

    你这很明显的异步问题啊,ajax发起请求是异步的,输出result的时候ajax请求还没完成,就输出result了。解决办法 callback 这个省略,自己改造 async await module.exports = async function () { let result = { news: [] } await $.ajax({ url: 'http://sayer.dev/index.php?s=/article/get_lists', method: 'get', success: res => { result.news = res.data } }) return result; }
    请先 登录 后评论
  • 爪哇程序猴323声望 2018-10-15 15:57

    你这个应该是 第二次输出 是因为你刷新页面 它请求没有完毕你就输出了result把
    请先 登录 后评论

注册新账号

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问