js 异步获取到的数据 到底能不能 赋值给一个全局变量

结论: 能! 

今天在做微信小程序中,需要将通过接口请求到的数据储存到为一个当前区域的全局变量,因为请求是异步的,所以打印很多undefined 或者初始值;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
    <div>万物皆有自己的轨道,迁跃需要能量</div>
    
    <script>
        var goodsInfo = {};
        $(document).ready(function(){
          
                $.ajax({url:"https://api-hmugo-web.itheima.net/api/public/v1/home/catitems",success:function(result){
                    goodsInfo = result;
                    console.log(goodsInfo);
                }});

            console.log(goodsInfo);

            var time = 40;

            setTimeout(()=>{console.log(goodsInfo);},time);
            
        });
        </script>
</body>
</html>

在设置延时时间为40ms时,我用浏览器刷新,有时候有数据,有时候没有数据

没数据打印情况

 

有数据打印情况

这种方式当然有一些弊端,如果数据不是取出来立马就要用,可以用,当然还有更好的异步处理方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以在Vue.js项目中引用外部JavaScript文件。你可以在Vue.js项目中使用`<script>`标签来引入外部JavaScript文件。通常情况下,你可以将这些外部JavaScript文件放在项目的`public`目录中,然后在Vue.js组件中使用`<script>`标签来引用它们。 例如,假设你在Vue.js项目的`public`目录中有一个名为`external.js`的JavaScript文件,你可以在Vue.js组件的`<template>`中使用该文件中的函数或变量,如下所示: ```html <template> <div> <p>外部JavaScript文件中定义的变量:{{ externalVariable }}</p> <button @click="externalFunction">调用外部JavaScript文件中定义的函数</button> </div> </template> <script> export default { data() { return { externalVariable: null } }, created() { // 在created钩子函数中异步加载外部JavaScript文件 const script = document.createElement('script') script.src = '/external.js' script.async = true document.body.appendChild(script) script.onload = () => { // 在外部JavaScript文件加载完成后,从全局对象中获取变量值 this.externalVariable = window.externalVariable } }, methods: { externalFunction() { // 在Vue.js组件中调用外部JavaScript文件中的函数 window.externalFunction() } } } </script> ``` 在上面的示例中,我们首先在Vue.js组件的`data`选项中定义了一个名为`externalVariable`的变量,然后在Vue.js组件的`created`生命周期钩子函数中异步加载了外部JavaScript文件`external.js`,并在外部JavaScript文件加载完成后,从全局对象中获取了变量值,并将其赋值给Vue.js组件中的`externalVariable`变量。另外,我们还在Vue.js组件中定义了一个名为`externalFunction`的方法,在该方法中调用了外部JavaScript文件中的函数`externalFunction()`。 需要注意的是,由于外部JavaScript文件是异步加载的,因此我们需要在加载完成后再使用其中的变量和函数。在上面的示例中,我们使用了`script.onload`事件来确保外部JavaScript文件加载完成后再执行相关代码。另外,也可以使用`async`和`defer`属性来控制外部JavaScript文件的加载行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值