首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端二次元

    JavaScript——异步进阶

    本期介绍JS 的特色就是异步编程,所有有很多关于异步的考点,本章都会讲解。如 event loop、promise、async-await、微任务和宏任务。学不会这些,就不算是精通 JS。 就是异步回调的实现原理。 ,是消灭异步回调的终极武器。 /同步的语法const img1 = await loadImg(src1)//await 必须用async函数包裹cosole.log(img1.height,img.width)const img2 = await loadImg(src2)cosnole.log(img.height,img2.width)}) ( )写法二:async function loadImg1() {const img1

    41210编辑于 2023-11-23
  • 来自专栏大数据

    JavaScript进阶-Promise与异步编程

    JavaScript开发中,异步编程是绕不开的一环,而Promise作为解决异步问题的重要工具,自ES6起便成为开发者手中的利器。 async function fetchData() { try { const data1 = await fetchFirstData(); const data2 = await fetchSecondData(data1.id); console.log(data2); } catch (error) { console.error('错误:', error setTimeout(reject, 800, '超时')) ]).then(data => { // ... }).catch(error => { // 处理超时或失败 }); 总结 Promise是JavaScript 通过识别并避免上述易错点,结合async/await等现代语法特性,可以使异步逻辑变得更加清晰和易于管理。不断实践,逐步深入理解异步编程模型,将使你在面对复杂异步流程时更加游刃有余。

    36510编辑于 2024-06-21
  • 来自专栏Python攻城狮

    Javascript(2)-js进阶

    1.JavaScript核心操作——DOM对象 window对象 通过window对象,可以操作和浏览器软件相关的信息 // window.alert();//调用浏览器的对话框操作 获取样式的值 100px // 2. appendChild(t2); d2.className = "test"; container.appendChild(d2); </script> </body div> <button id="btn" onclick="playGame()">开始抽奖</button>

    <script type="text/<em>javascript</em> 飞机飞行进度演示 5.<em>JavaScript</em>事件——Event 事件操作: 事件就是一种发生在网页上的行为;鼠标单击、鼠标双击、键盘按下、键盘抬起、获得焦点、失去焦点等等各种行为 常见的事件: 鼠标事件

    1.7K30发布于 2018-08-23
  • 来自专栏从0到1前端开发

    JavaScript 进阶 - 第2

    进阶 - 第2天 了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。 在 JavaScript 内置了一些构造函数,绝大部的数据处理都是基于这些构造函数实现的,JavaScript 基础阶段学习的 Date 就是内置的构造函数。 ,而非堆内存中的数据,如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NZyFjJc2-1668165425697)(assets/object-2.png) ; // 字面量创建字符串 let str2 = '你好,世界!' 2.3 写在最后 至此对 JavaScript 有了更深的理解,即 JavaScript 中一切皆为对象,还有以前学习的 window、Math 对象,最后补充一点无论是引用类型或是包装包类型都包含两个公共的方法

    1.9K30编辑于 2022-11-18
  • 来自专栏coding个人笔记

    JavaScript异步

    所以JavaScript把任务分成了两种,一种是同步任务,另一种是异步任务。 简单来说过程是这样的: 1、 主线程执行所有同步任务,形成一个执行栈; 2、 在主线程执行的过程中形成的异步任务,会进入任务队列; 3、 当执行栈中所有的同步任务队列执行完毕,任务队列自动进入执行栈,变成同步任务 这就是JavaScript的运行机制,如下代码: console.log( "1" ); setTimeout(function() { console.log( "2" ) }, 0 ); setTimeout 4" ) }, 2000 ); setTimeout(function() { console.log( "5" ) }, 3000 ); console.log( "6" ); //1 6 2 异步其实挺简单的,可能本人刚开始进入了误区,理解异步可以让我们对于JavaScript的执行原理有一定的理解。 (完)

    70210发布于 2020-04-23
  • 来自专栏代码编写世界

    JavaScript异步编程2——结合XMLHttpRequest使用Promise

    概述 2. 详论 3. 参考 1. 概述 在上一篇文章《JavaScript异步编程1——Promise的初步使用》,简单介绍了一下Promise的初步使用。 Promise对象的参数也是一个function B,内部进行了一个异步操作(通常是JavaScript提供的API)。 function B对象的参数是两个回调函数resolve和reject。 当异步操作完成了,就会执行相应分支的响应函数。 采用以上范式,可以通过Promise来进行Ajax操作,也就是XMLHttpRequest,毕竟这个操作在Web应用中实在太常见了。 2. /PromiseTest.js"></script> </body> </html> 如果不使用Promise,那么相应的JavaScript代码为: $(function () { var 使用Promise,可以更准确的进行异步行为。 3. 参考 Ajax原理-原生js的XMLHttpRequest对象意义 Javascript异步编程的4种方法

    1.3K10发布于 2021-04-20
  • 来自专栏hotarugaliの技术分享

    JavaScript异步操作

    Promise.all()和Promise.race() 并行调用异步操作 两个函数均用于并行调用多个异步操作使用 All:两个异步操作都resolve之后调用then() var p1 = new Promise resolve, reject) { setTimeout(resolve, 600, 'P2'); }); // 同时执行p1和p2,并在它们都完成后执行then: Promise.all([ p1, p2]).then(function (results) { console.log(results); // 获得一个Array: ['P1', 'P2'] }); Race:最快的异步操作 = new Promise(function (resolve, reject) { setTimeout(resolve, 600, 'P2'); }); // 同时执行p1和p2,最快返回函数执行 then: Promise.race([p1, p2]).then(function (results) { console.log(results); // 'P1' });

    63810编辑于 2022-03-01
  • 来自专栏前端进阶之路

    JavaScript异步编程

    #前言 从我们一开始学习JavaScript的时候就听到过一段话:JS是单线程的,天生异步,适合IO密集型,不适合CPU密集型。 ,这一切,都需要更强大、更合理的异步方法,通过这篇文章,我想对目前已有JavaScript异步的处理方式做一个总结,同时试着去解释为什么会出现这些技术,让大家对JavaScript异步编程有一个更宏观的理解 这里,我们引出了回调函数处理异步的第二个问题:控制反转。 综上,回调函数处理异步流程存在2个问题: 1. 缺乏顺序性: 回调地狱导致的调试困难,和大脑的思维方式不符 2. Step2 - Promise 开门见山,Promise解决的是回调函数处理异步的第2个问题:控制反转。 2. value - 迭代器返回的任何JavaScript值。done为true时可以忽略。

    1.5K20发布于 2018-10-31
  • 来自专栏前端学习文档

    JavaScript 异步模式

    source=cloudtencen 什么是异步模式? 不会等待当前任务执行完毕,才会去执行下一个任务,这就是异步模式(Asynchronous)。 开启异步后,就会跳过本任务,开始执行下一个任务,后续的逻辑一般会通过回调函数的方式定义。 异步方案 ES2015 提供的 Pormise 方案 ES2015 提供的 Generator ES2017 提供的 Async / Await 语法糖(可以写出更扁平的异步代码) 基础案例 console.log setTimeout(() => { console.log('timer1 invoke') }, 1800) setTimeout(() => { console.log('timer2 'inner invoke') }, 1000) }, 1000) console.log('global end') 输出结果: global begin global end timer2

    48420编辑于 2023-05-14
  • 来自专栏ops技术分享

    JavaScript 异步编程

    以上是关于异步的概念的解释,接下来我们通俗地解释一下异步异步就是从主线程发射一个子线程来完成任务。 为了解决这个问题,JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。 当然,JavaScript 语法十分友好,我们不必单独定义一个函数 print ,我们常常将上面的程序写成: 实例 setTimeout(function () { document.getElementById ; }, 3000); document.getElementById("demo2").innerHTML="RUNOOB-2!" ; console.log("2"); 异步 AJAX 除了 setTimeout 函数以外,异步回调广泛应用于 AJAX 编程。

    83230发布于 2021-07-19
  • JavaScript 异步编程

    以上是关于异步的概念的解释,接下来我们通俗地解释一下异步异步就是从主线程发射一个子线程来完成任务。 为了解决这个问题,JavaScript 中的异步操作函数往往通过回调函数来实现异步任务的结果处理。 当然,JavaScript 语法十分友好,我们不必单独定义一个函数 print ,我们常常将上面的程序写成: 实例 setTimeout(function () { document.getElementById ; // 三秒后子线程执行 }, 3000); document.getElementById("demo2").innerHTML="RUNOOB-2!" // 三秒后子线程执行 RUNOOB-2! // 主线程先执行 异步 AJAX 除了 setTimeout 函数以外,异步回调广泛应用于 AJAX 编程。

    15710编辑于 2025-12-16
  • 来自专栏HZFEStudio

    JavaScript 异步编程

    异步编程方案有哪些 JavaScript 异步编程方案各有什么优缺点 回答关键点 阻塞 事件循环 回调函数 JavaScript 是一种同步的、阻塞的、单线程的语言,一次只能执行一个任务。 "; document.body.appendChild(pElem); }); 异步回调是编写和处理 JavaScript 异步逻辑的最常用方式,也是最基础的异步模式。 但是随着 JavaScript 的发展,异步回调的问题也不容忽视: 回调表达异步流程的方式是非线性的,非顺序的,理解成本较高。 回调会受到控制反转的影响。 2. 定时器:setTimeout/setInterval/requestAnimationFrame 这三个都可以用异步方式运行代码。 ", "hzfe2", "hzfe3"] fn1打印 // fn2: hzfe1,hzfe2,hzfe3 发布/订阅模式可以更细致地了解到有多少种事件类型以及每种类型对应的订阅事件,方便进一步的监听与控制

    1.4K00发布于 2021-10-30
  • 来自专栏Android研究院

    JavaScript 异步编程

    ❝掌握JavaScript主流的异步任务处理 ( 本篇文章内容输出来源:《拉钩教育大前端训练营》参阅《你不知道的JavaScript中卷》异步章节)❞ JavaScrip 采用单线程模式工作的原因,需要进行 JavaScirpt分为:同步模式、异步模式 同步模式与异步模式 同步模式 同步模式其实就是:排队执行,下面根据一个Gif动画来演示同步模式,非常简单理解,js维护了一个正在执行的工作表,当工作表的任务被清空后就结束了 异步模式 通过一个图来演示异步任务,用到事件循环与消息队列机制实现 ? Untitled 0.png Promise异步方案 常见的异步方案就是通过回调函数来实现,导致回调地狱的问题,CommonJS社区提出了Promise方案并在ES6中采用了。 目前大部分异步回调作为宏任务 常见的宏任务与微任务如下图所示: ? Untitled 2.png 下面是JavaScript执行异步任务的执行时序图: ?

    1.5K10发布于 2020-07-31
  • 来自专栏OECOM

    javascript异步编程

    简单来说,异步编程就是在执行一个指令之后不是马上得到结果,而是继续执行后面的指令,等到特定的事件触发后,才得到结果。 也正是因为这样,我们常常会说: JavaScript 是由事件驱动的。 这样,如果我们需要在查到结果之后才做某些事情的话,就需要把相关的代码写在回调里面,如果涉及到多个这样的异步操作,就势必会陷入到回调地狱中去。 2.  在 JavaScript 中,Generator 的 function 与 函数名之间有一个 *, 函数内部使用 yield 关键词,定义不同的状态。 调用指针 g 的 next 方法,会移动内部指针(即执行异步任务的第一段),指向第一个遇到的 yield 语句,上例是执行到 x + 2 为止。 JavaScript异步回调问题,目前可以借助 babel 在生产环境中使用。

    79510发布于 2020-07-01
  • 来自专栏Cellinlab's Blog

    JavaScript Async (异步)

    # 异步 事实上,程序中现在 运行的部分和将来 运行的部分之间的关系就是异步编程的核心。 # 异步控制台 并没有什么规范或一组需求指定 console.* 方法族如何工作——它们并不是 JavaScript 正式的一部分,而是由宿主环境添加到 JavaScript 中的。 并行线程的交替执行和异步事件的交替调度,其粒度是完全不同的。 JavaScript 从不跨线程共享数据,这意味着不需要考虑这一层次的不确定性。但是这并不意味着 JavaScript 总是确定性的。 function later () { answer = answer * 2; console.log(answer); } 在单线程环境中,线程队列中的这些项目是底层运算确实是无所谓的, []; function response(data) { res = res.concat( data.map(function (val) { return val * 2;

    92330编辑于 2023-05-17
  • 来自专栏Krryblog

    JavaScript 异步编程

    博客地址:https://ainyi.com/96 众所周知,JavaScript 是单线程的,但异步在 js 中很常见,那么简单来介绍一下异步编程 同步编程和异步编程 同步编程,计算机一行一行按顺序依次执行代码 ;那么 JavaScript 单线程的异步编程可以实现多任务==并发执行== 重点实现 js 异步的方式,就是==事件循环==,之前写过关于事件循环的例子,可看:JavaScript 事件循环、异步和同步 首先 JavaScript 的同步任务是进入主线程的执行栈执行;异步任务则进入==消息队列(任务队列)==,一个存储着待执行任务的队列,严格按照时间先后顺序执行,排在队头的任务将会率先执行,而排在队尾的任务会最后执行 ,重复这个过程 [28.jpg] 简单来说:事件循环其实就是入栈出栈的循环 这样就能实现异步方式 js 的异步方式 setTimeout ajax Promise Generator setTimeout 即使将时间设置为 0,也会延迟执行,即异步执行。

    87630发布于 2020-09-15
  • 来自专栏ccylovehs

    JavaScript异步编程

    2.JS 运行机制 JS 是单线程运行的,这意味着两段代码不能同时运行,而是必须逐步地运行,所以在同步代码执行过程中,异步代码是不执行的。只有等同步代码执行结束后,异步代码才会被添加到事件队列中。 然后往下执行发现是promise.then回调函数,此为异步微任务,放入任务队列中,等待同步任务执行完才能执行 再往下执行是timeout定时器,此为异步宏任务,也放入任务队列中,等待同步任务执行完、异步微任务才能执行 再往下是foo方法,此为同步任务,借用网络流行的一句话 “JavaScript中的函数是一等公民”,打印日志start...后回调执行bar方法,到这里就有两个执行栈了(依次将foo、bar放入栈中, bar执行完就弹出栈,foo依次弹出) 关于并发模型和Event Loop 请看MDN(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop   1 (function(){ 2 var xmlhttp = window.XMLHttpRequest ?

    1.2K20发布于 2018-09-14
  • 来自专栏Super 前端

    JavaScript异步编程

    Javascript语言的执行环境是”单线程”(single thread)。所谓”单线程”,就是指一次只能完成一件任务。 Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。 “异步模式”非常重要。 在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。 在服务器端,”异步模式”甚至是唯一的模式,因为执行环境是单线程的,如果允许同步执行所有http请求,服务器性能会急剧下降,很快就会失去响应。 然而,异步执行最大的问题就是执行顺序。 , 1000); 这些操作不能在初始化的解析过程中完成的,也就是说在JavaScript代码运行的同时必须新启动一个解析器来解析新的代码。性能消耗较大。

    64141发布于 2019-08-15
  • 来自专栏XC's Blog 日常笔记

    JavaScript 进阶

    result() //3 实现了数据私有,无法直接修改count 闭包可能引起的问题:内存泄漏 变量提升 变量提升是 JavaScript 中比较“奇怪”的现象,它允许在变量声明之前即被访问(仅存在于var 变量在未声明即被访问时会报语法错误 变量在var声明之前即被访问,变量的值为 undefined let / const 声明的变量不存在变量提升 变量提升出现在相同作用域当中 实际开发中推荐先声明再访问变量 函数进阶 静态成员: 在 JavaScript 中底层函数本质上也是对象类型,因此允许直接为函数动态添加属性或方法,构造函数的属性和方法被称为静态成员。 在 JavaScript 内置了一些构造函数,绝大部的数据处理都是基于这些构造函数实现的,JavaScript 基础阶段学习的 Date 就是内置的构造函数。 在实例对象里面 指向原型 prototype 原型继承 继承是面向对象编程的另一个特征,通过继承进一步提升代码封装的程度,JavaScript 中大多是借助原型对象实现继承的特性。

    1.8K20编辑于 2023-04-03
  • 来自专栏神葳总局

    JavaScript进阶

    JavaScript进阶学习笔记 # 正则表达式 正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则, 也可以将一个字符串中符合规则的内容提取出来。 创建正则表达式 var reg = new RegExp("正则","匹配模式"); var reg = /正则表达式/匹配模式 1 2 复制 语法: 表达式 说明 i 忽略大小写 g 全局匹配模式 nextSibling 获取当前元素的后一个兄弟节点 读取标签内部的文本内容

    h1中的文本内容

    <script>元素.firstChild.nodeValue</script> 1 2 (){ var btn = document.getElementById("btn"); btn.onclick = function(){ }; }; </script> 1 2 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 复制 ---- # JSON JavaScript

    1.8K20发布于 2021-01-22
  • 领券