当前位置: 首页 > news >正文

解释为什么fetch(JavaScript)无法将读取的数据存入外部变量

(一)问题描述

      你可能会遇到这样的情况:在fetch之外创建变量,将fetch获取到的数据赋值给这个变量以便在fetch外使用,但在使用这个变量的时候发现值是空的,这是为什么呢?

(二)同步和异步 

原因很简单:fetch是异步的

那么什么是同步什么是异步呢?简单来说,同步和异步中任务执行的顺序不同:同步是指任务按顺序执行,一个任务完成后再开始下一个任务异步是指任务可以独立执行,一个任务不需要等待另一个任务完成,可以通过回调、事件或通知来获取结果。

对于这段代码:

let obj=[]//定义objfetch("XXX")//利用fetch获取数据.then((res) => res.text()).then((data) => {......console.log("获取数据");obj.push(XXX);//为obj赋值......}
console.log("写在获取数据之后的代码")

假设fetch是同步的,那么执行的顺序就是定义obj->获取数据并放入obj->在fetch外使用obj,控制台输出的顺序就是"获取数据”->"写在获取数据之后的代码“。但实际是fetch是异步的,fetch内的代码段可以独立执行,整个代码执行的顺序是(1)定义obj->在fetch外使用obj(2)fetch获取数据二者同步进行,那么fetch外使用obj时,数据获取和obj的赋值还没有完成!实际控制台输出的顺序是”写在获取数据之后的代码“->"获取数据”!

(三) 解决办法

1. 使用async和await来确保在使用变量之前数据已经被获取

2. 将需要使用数据的代码放入fetch的回调函数内部或者在数据获取完成后的回调中(也就是.then()中)

相关文章:

解释为什么fetch(JavaScript)无法将读取的数据存入外部变量

(一)问题描述 你可能会遇到这样的情况:在fetch之外创建变量,将fetch获取到的数据赋值给这个变量以便在fetch外使用,但在使用这个变量的时候发现值是空的,这是为什么呢? (二&#xf…...

Windows Subsystem for Linux (WSL)

目录 定义与功能 版本与特点 应用场景 启用 WSL 功能 更新WSL及其内核 下载Linux发行版本 WSL(Windows Subsystem for Linux)是微软在Windows 10和Windows 11中引入的一项功能,使用户能够在Windows上原生运行Linux的命令行工具和应用程…...

Go的Slice如何扩容

在Go语言中,slice(切片)是一个动态数组,其底层实现是基于数组,但提供了更灵活的长度和容量管理。当向slice中添加元素并超出其当前容量时,Go会自动为其分配一个更大的底层数组,并复制现有元素到…...

使用云计算开发App 有哪些坑需要避免

当我们在云计算环境下开发App时,往往会觉得一切都变得“轻松”了。毕竟,云计算提供了无限的计算资源、灵活的存储方案,还有自动化的服务,仿佛有了一个万能的工具箱,啥都能搞定。可是,别被这种“轻松”外表骗…...

ARM 架构--通用寄存器状态寄存器控制寄存器特殊用途寄存器

目录 一?ARM 架构中的寄存器 ARM 架构中的寄存器 通用寄存器 状态寄存器 控制寄存器 特殊用途寄存器 总结 二 通用寄存器 ARM 架构中的通用寄存器 ARMv7 架构 ARMv8 架构 实例 ARMv7 架构 ARMv8 架构 三 状态寄存器 ARM 架构中的状态寄存器 状态寄存器 详细…...

最新SQL Server 2022保姆级安装教程【附安装包】

目录 一、安装包下载: 下载链接:https://pan.quark.cn/s/b1c0c63d61ec 二、安装SQL Server 1.下载安装包后解压出来,双击打开 2.等待加载安装程序 3.点击基本安装 4.点击接受 5.点击浏览 6.在D盘新建文件夹 7.命名为【Sql Server】…...

学习C++:运算符

运算符 作用:用于执行代码的运算 一,算数运算符 作用:用于处理四则运算 (在除法运算中,除数不可以为0) 两个小数不可以做取模运算 (只有整型变量可以进行取模运算) 二&#xff0…...

pdf有密码,如何实现pdf转换word?

PDF想要转换成其他格式,但是当我们将文件拖到PDF转换器进行转换的时候发现PDF文件带有密码怎么办?今天分享PDF有密码如何转换成word方法。 方法一、 PDF文件有两种密码,打开密码和限制编辑,如果是因为打开密码,建议使…...

AI发展新态势:从技术突破到安全隐忧

AI安全的新挑战 近期AI领域出现了令人担忧的新发现。根据最新研究,AI模型已经开始展现出策略性欺骗的倾向。具体表现在以下几个方面: 策略性欺骗行为的出现 在实验中发现,当研究人员试图让AI执行一些"反Anthropic"的操作时(如获取模型权限和外部服务器访问),模…...

王佩丰24节Excel学习笔记——第二十二讲:制作甘特图与动态甘特图

【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章技巧】 插入图表,针对每一个图表上的元素,都可以选中选右键进行修改数据;本章中的向两端延伸,设置数据的原理;数据格式的显示方式&…...

若依框架之简历pdf文档预览功能

一、前端 (1)安装插件vue-pdf:npm install vue-pdf (2)引入方式:import pdf from "vue-pdf"; (3)components注入方式:components:{pdf} (4&…...

酷瓜云课堂(内网版)v1.1.8 发布,局域网在线学习平台方案

更新layui-v2.9.20文章复用课程期限优化编辑器内容自动提交联系方式增加抖音二维码修正课时详情页目录高亮问题修正CommentInfo中点赞判断精简AccountSearchTrait优化kg_h5_index_url()优化CourseUserTrait优化kg_setting()优化CsrfToken 系统介绍 酷瓜云课堂内网版&#xff…...

python语音机器人(青云客免费api)

强调:不用登录注册,直接使用就好 青云客智能聊天机器人API python代码,直接可以运行: 1、安装库: pip install requests pyttsx3 SpeechRecognition sounddevice numpy scipy2、完整代码: import request…...

使用ArcGIS/ArcGIS pro绘制六边形/三角形/菱形渔网图

在做一些尺度分析时,经常会涉及到对研究区构建不同尺度的渔网进行分析,渔网的形状通常为规则四边形。构建渔网的方法也很简单,使用ArcGIS/ArcGIS Pro工具箱中的【创建渔网/CreateFishnet】工具来构建。但如果想构建其他形状渔网进行相关分析&…...

5.系统学习-PyTorch与多层感知机

PyTorch与多层感知机 前言PyTroch 简介张量(Tensor)张量创建张量的类型数据类型和 dtype 对应表张量的维度变换:张量的常用操作矩阵或张量计算 Dataset and DataLoaderPyTorch下逻辑回归与反向传播数据表格 DNN(全连结网络&#x…...

AIGC与虚拟身份及元宇宙的未来:虚拟人物创作与智能交互

个人主页:云边有个稻草人-CSDN博客 目录 引言 一、AIGC在元宇宙中的作用 1.1 AIGC与虚拟人物创作 1.1.1 生成虚拟人物外观 1.1.2 个性化虚拟角色设计 1.2 AIGC与虚拟角色的行为与交互 1.2.1 行为生成与强化学习 1.2.2 对话生成与自然语言处理 二、AIGC实现…...

基于大模型LLM 应用方案

现如今LLM 应用 面临的主要问题 准确性,2. 高成本,3. 专业性,4. 时效性,5. 安全性 信息偏差/幻觉 (大模型由于数据缺陷/知识边界 会使用 可靠性下降)知识更新滞后性 (LLM 基于静态数据集训练,可能导致知识更…...

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

区块链平台安全属性解释

区块链平台安全属性解释 双向认证 解释:双向认证是指在通信过程中,**通信双方都需要对对方的身份进行验证,确保对方是合法的、可信任的实体。**只有双方身份都得到确认后,通信才会被允许进行,从而防止非法用户的接入和数据的窃取或篡改。举例:在基于区块链和联邦学习的数…...

1228作业

思维导图 作业 TCP的cs模型 服务器 //服务器 #include <myhead.h> #define PORT 6667 #define IP "192.168.124.94" #define BACKLOG 128 int main(int argc, const char *argv[]) {//创建套接字int oldfd socket(AF_INET,SOCK_STREAM,0);if(oldfd-1){perro…...

Docker下Kong+Konga全栈部署避坑指南(附PostgreSQL 9.6配置)

Docker环境下Kong与Konga全栈部署实战指南 引言 在现代微服务架构中&#xff0c;API网关扮演着流量调度与安全管控的关键角色。Kong作为开源API网关的标杆产品&#xff0c;凭借其插件化架构和强大性能&#xff0c;已成为企业级API管理的首选方案。而Konga作为Kong的图形化管理…...

GLM-4.1V-9B-Base实战案例:智能客服知识库图片问答模块集成方案

GLM-4.1V-9B-Base实战案例&#xff1a;智能客服知识库图片问答模块集成方案 1. 项目背景与需求分析 在智能客服系统中&#xff0c;用户经常需要上传产品图片、使用场景截图或问题示意图进行咨询。传统客服系统只能依赖人工处理这类图片咨询&#xff0c;效率低下且成本高昂。G…...

Flask-base实战案例:从零构建功能完备的博客系统

Flask-base实战案例&#xff1a;从零构建功能完备的博客系统 【免费下载链接】flask-base A simple Flask boilerplate app with SQLAlchemy, Redis, User Authentication, and more. 项目地址: https://gitcode.com/gh_mirrors/fl/flask-base Flask-base是一个功能强大…...

Qwen3-ForcedAligner-0.6B在字幕制作中的落地应用:SRT自动导出全流程

Qwen3-ForcedAligner-0.6B在字幕制作中的落地应用&#xff1a;SRT自动导出全流程 1. 引言&#xff1a;告别手动打轴&#xff0c;让字幕制作快10倍 如果你做过视频字幕&#xff0c;一定体会过手动打轴的痛苦。一集45分钟的视频&#xff0c;台词稿早就准备好了&#xff0c;但你…...

VoxCPM-1.5-WEBUI问题解决:部署常见错误与一键启动脚本详解

VoxCPM-1.5-WEBUI问题解决&#xff1a;部署常见错误与一键启动脚本详解 1. 快速入门指南 1.1 镜像部署准备 在开始使用VoxCPM-1.5-WEBUI之前&#xff0c;您需要确保具备以下条件&#xff1a; 支持CUDA的NVIDIA显卡&#xff08;建议RTX 3060及以上&#xff09;至少16GB系统内…...

Phi-3-mini-4k-instruct-gguf实战教程:开箱即用的轻量中文问答部署指南

Phi-3-mini-4k-instruct-gguf实战教程&#xff1a;开箱即用的轻量中文问答部署指南 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合处理中文问答、文本改写、摘要整理以及简短创作等任务。…...

bilibili-api完全指南:评论数据爬取的4个突破式解决方案

bilibili-api完全指南&#xff1a;评论数据爬取的4个突破式解决方案 【免费下载链接】bilibili-api 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。原仓库地址&#xff1a;https://github.com/MoyuScript/bilibili-api 项目地址: https://gitcode.com/gh_mi…...

StructBERT WebUI部署教程:CSDN GPU Pod环境下5000端口服务配置与防火墙适配

StructBERT WebUI部署教程&#xff1a;CSDN GPU Pod环境下5000端口服务配置与防火墙适配 1. 项目概述 StructBERT文本相似度服务是一个基于百度StructBERT大模型的高精度中文句子相似度计算工具。这个工具能够准确判断两个中文句子在语义上的相似程度&#xff0c;为各种文本处…...

Winhance中文版:让Windows系统管理不再复杂的全能工具

Winhance中文版&#xff1a;让Windows系统管理不再复杂的全能工具 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-zh…...

Matlab/Simulink仿真BLDC电机:避开转速闭环控制的5个常见坑

BLDC电机转速闭环仿真避坑指南&#xff1a;从参数配置到结果验证的完整解决方案 在电机控制领域&#xff0c;BLDC&#xff08;无刷直流电机&#xff09;因其高效率、长寿命和低维护成本等优势&#xff0c;已成为工业自动化、电动汽车和消费电子等领域的主流选择。Matlab/Simul…...