同步与异步

同步

  • 通常情况代码都是自上向下一行一行执行的

  • 前边的代码不执行后边的代码也不会执行

  • 同步的代码执行会出现阻塞的情况

  • 一行代码执行慢会影响到整个程序的执行1

  • 解决同步问题
    java python通过多线程来解决
    node.js通过异步方式来解决


异步

  • 一段代码的执行不会影响到其他的程序
  • 异步的问题:
    异步的代码无法通过return来设置返回值
  • 特点:
    1.不会阻塞其他代码的执行
    2.需要通过回调函数来返回结果
  • 基于回调函数的异步带来的问题
    1.代码的可读性差
    2.可调试性差1

异步代码:

console.log(1)
function iq(a,b,cb){setTimeout(()=>{cb(a+b)},2000)
}
// 传入回调函数作为参数,在定时器里面调用
iq(1,3,(result)=>{console.log(result)})
console.log(9)

注意输出顺序:
在这里插入图片描述
如果用return返回,则会出现undefined
在这里插入图片描述
原因是在这里插入图片描述
返回的a+b是定时器的值,不是iq函数的值。所以需要回调函数把值传送出去。

但是如果需要频繁地调用回调函数,则会出现回调地狱。

function iq(a,b,cb){setTimeout(()=>{cb(a+b)},2000)
}
// 回调函数一多就是出现回调地狱
iq(1,3,(result)=>{iq(result,2,(result)=>{iq(result,2,(result)=>{iq(result,2,(result)=>{iq(result,2,(result)=>{iq(result,2,(result)=>{iq(result,2,(result)=>{console.log(result)})})})})})})
})

在这里插入图片描述


  1. 解决问题:
    需要一个东西,可以代替回调函数来给我们返回结果.Promise横空出世. Promise是一个可以用来存储数据的对象,Promise存储数据的方式比较特殊,这种特殊方式使得Promise可以用来存储异步调用的数据. ↩︎ ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/525727.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】list模拟实现list迭代器失效问题

list模拟实现&list迭代器失效问题 一,list模拟实现1. list的主要框架接口模拟2. list构造&拷贝构造&析构3. list迭代器3.1 普通迭代器3.2 const迭代器 4. 增删查改 二,迭代器失效问题1. list的迭代器失效原因2. 解决办法 一,list…

想到2024年最有前景的副业创业机会?那这个项目你绝对不能错过!

大家好,我是电商花花。 现在看到别人要么都有自己的副业,要么都在做创业项目,你是不是也看的激情澎湃,想要做抖音小店,想要创业赚钱。 2024年做什么副业、创业有盼头?我觉得还得是抖音小店无货源这个电商…

Cookie、Session、Token、JWT

文章目录 1. Cookie1.1 为什么需要Cookie1.2 Cookie是什么1.3 Cookie机制 2. Session2.1 为什么需要Session2.2 Session机制 3. Token3.1 Token简介3.2 Token和Session的区别 4. JWT4.1 JWT简介4.2 JWT的数据结构与使用 5. Gin框架中JWT的使用5.1 安装5.2 使用 1. Cookie 1.1 为…

【滑动窗口】力扣239.滑动窗口最大值

前面的文章我们练习数十道 动态规划 的题目。相信小伙伴们对于动态规划的题目已经写的 得心应手 了。 还没看过的小伙伴赶快关注一下,学习如何 秒杀动态规划 吧! 接下来我们开启一个新的篇章 —— 「滑动窗口」。 滑动窗口 滑动窗口 是一种基于 双指…

Matlab|配电网智能软开关(sop)规划模型

目录 1 主要内容 目标函数 2 部分程序 3 程序结果 3.1 sop选址定容优化模型 3.2 对比算例(不含sop) 4 下载链接 1 主要内容 该程序参考文献《基于改进灵敏度分析的有源配电网智能软开关优化配置》,采用二阶锥算法,以改进的…

动态调整html表格每列宽度

为什么想自动计算列宽呢?因为我有一次拿到一个项目,它里面的列宽都是写死的。后来需要改,一个个的改太麻烦了。 诸如这样的表格在网站上非常常见。我们不对列做设置的话,列宽就会取每列文本内容的最大长度。在只有一条文本非常长…

ubuntu安装开源汇编调试器NASM

安装 安装很简单,直接在终端输入以下命令即可 sudo apt-get install nasm 安装完成后,如果可以查看到nasm的版本号即可视为安装成功 nasm -version 测试 创建汇编文件 创建一个asm文件 vim hello.asm 文件内容如下 section .datahello: db …

Linux随记(八)

一、crontab运行shell脚本,py脚本 (注意事项) 情景描述: 目前有个sh脚本他最初大致内容是。 cat t11.sh#!/bin/bash source /etc/profile /bin/python3 /tmp/1.py sh /tmp/1.sh echo -e "$(date %F)" >…

LeetCode148题:排序链表(python3)

在数组排序中,常见的排序算法有:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序等。 而对于链表排序而言,因为链表不支持随机访问,访问链表后面的节点只能依靠 next 指针从头…

2024-03-05 linux 分区老显示满,Use 100%,原因是SquashFS 是一种只读文件系统,它在创建时就已经被填满,所有空间都被使用。

一、这两天一直纠结一个问题,无论怎么修改,linux 分区老显示满,Use 100%,全部沾满。如下图的oem分区。 二、导致出现上面的原因是:SquashFS文件系统里的空间利用率总是显示为100%。 三、SDK里面也说明SquashFS文件系统…

昏暗场景增强-低照度增强-弱光增强(附代码)

引言 随着现代科技的发展,图像采集设备已经渗透到生活的方方面面,然而在昏暗场景、低照度或弱光条件下,图像的质量往往受到严重影响,表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。这类图像对于人眼识别和计算机视觉…

基于机器学习的网络入侵检测与特征选择及随机森林分类器性能评估(NSL-KDD数据集)

简介 本文将详细介绍如何利用Python和相关机器学习库对NSL-KDD数据集进行预处理,特征选择,并通过随机森林算法构建网络入侵检测模型。同时,还将展示如何计算并可视化模型的ROC曲线以评估其性能。 首先,我们导入了必要的库&#…