Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >回调是如何在Javascript中在幕后进行编码的?

回调是如何在Javascript中在幕后进行编码的?
EN

Stack Overflow用户
提问于 2019-10-19 02:20:47
回答 1查看 225关注 0票数 0

函数是如何知道某事是回调的;需要在某个先前的I/O完成之后执行的东西。它怎么知道它不应该马上执行?它是以(标准化)方式用函数定义的吗?

据我所知,在参数中经常使用的‘回调’关键字只是常见的练习,但函数不会自动将参数解释为应该在确定的I/O完成后启动的东西。

以下面的例子为例,我有两个问题(取自https://medium.com/codebuddies/getting-to-know-asynchronous-javascript-callbacks-promises-and-async-await-17e0673281ee):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const request = require(‘request’);
function handleResponse(error, response, body){
    if(error){
        // Handle error.
    }
    else {
        // Successful, do something with the result.
    }
}
request('https://www.somepage.com', handleResponse);
  1. 'require‘函数的结构是什么样子的,以便它知道参数2(在本例中是handleResponse)应该在请求完成后执行?我想这可以归结到我上面问的同一个问题。
  2. 即使函数中没有异步关键字,函数也可以是异步的吗?如果是,浏览器如何知道它是一个异步函数?
EN

回答 1

Stack Overflow用户

发布于 2019-10-19 02:50:50

  1. 我想您是想问关于request函数的问题。大多数异步函数调用其他异步函数来完成某些工作,然后调用回调。您可以将其看作是一系列函数和回调。这就是request函数所做的。当然,至少最后一个函数需要真正的异步,并且通常是一个由节点内置模块(fshttp、.)导出的函数。它也可以由本机模块导出,或者在最近的节点版本中使用worker_threads模块。
  2. 函数不需要async关键字来实现异步。将函数标记为async允许函数使用await语法,并使函数隐式返回承诺。

为了更好地理解异步代码是如何工作的,您应该看看节点事件循环是如何工作的。

请注意,我假设了一个Node.js环境,因为您使用了require,但我所说的大部分内容也适用于浏览器:存在一个异步函数链,最后一个函数将调用一个内置函数(例如XMLHttpRequest)。浏览器环境也使用事件循环,async/await以同样的方式工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58462670

复制
相关文章
javascript异步中的回调
我们之前介绍了javascript异步的相关内容,我们知道javascript以同步,单线程的方式执行主线程代码,将异步内容放入事件队列中,当主线程内容执行完毕就会立即循环事件队列,直到事件队列为空,当用产生用户交互事件(鼠标点击,点击键盘,滚动屏幕等待),会将事件插入事件队列中,然后继续执行。 处理异步逻辑最常用的方式是什么?没错这就是我们今天要说的---回调
陌上寒
2019/04/02
2.1K0
javascript异步中的回调
JavaScript中的回调函数(callback)
被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数。
刘亦枫
2020/03/19
7.1K0
JavaScript中的this指针与回调函数
在常规的面向对象语言中(比如C++),this指针的指向是确定的。但在JavaScript中,this指向依赖于运行环境。
coderhuo
2023/10/21
1830
JavaScript回调函数
JavaScript中的回调函数是一种特殊类型的函数,它被传递给其他函数作为参数,并在特定的事件或条件发生时被调用。回调函数用于处理异步操作、事件处理、定时器等情况,以确保代码在合适的时机执行。在JavaScript中,回调函数常用于处理非阻塞的操作,以避免程序的停顿和等待。
堕落飞鸟
2023/05/17
2.5K0
JavaScript 回调函数
函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回;
鱼找水需要时间
2023/02/16
2.8K0
JavaScript回调函数
JavaScript API里这样解释:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed. (回调是一个函数作为参数传递给另一个函数,其母函数完成后执行。) 使用回调函数的原因:可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。
奋飛
2019/08/15
2.3K0
javaScript回调函数
回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。
用户6167509
2019/09/04
3.6K1
JavaScript回调函数
JavaScript的回调函数大概是JavaScript中使用最广泛的函数编程技术了,我们几乎可以在任何脚本中看到它的身影。
wade
2020/04/23
1.6K0
有关JavaScript中回调函数的所有内容!
最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。
前端小智@大迁世界
2021/01/18
2.2K0
回调函数在Java中的应用
关于回调函数(Callback Function),维基百科已经给出了相当简洁精炼的释义。Java的面向对象模型不支持函数,其无法像C语言那样,直接将函数指针作为参数;尽管如此,我们依然可以基于接口来获得等效的回调体验。
程序猿杜小头
2022/12/01
2.9K0
JavaScript-回调函数
In computer programming, a callback is a piece of executable code that is passed as an argument to other code, which is expected to call back (execute) the argument at some convenient time
小小工匠
2021/08/16
9360
关于JavaScript中的回调看这篇就够了
回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promise、事件处理中。
疯狂的技术宅
2021/01/13
9630
JavaScript 中回调、Promise 和 Async/Await 的代码案例
本文将通过代码示例展示如何使用基于回调的 API,然后将其改成使用 Promises,最后再用 Async/Await 语法。本文不会详细解释回调、promise 和 Async/Await 语法。有关这些概念的详细解释,请查看 MDN 的 Asynchronous JavaScript[1],它解释了什么是异步性以及如何用回调、promise 和 Async/Await 语法处理异步 JavaScript。
疯狂的技术宅
2021/06/09
1.5K0
JavaScript 中回调、Promise 和 Async/Await 的代码案例
什么是回调地狱?如何解决回调地狱问题_地狱回调
这个问题呢,需要从Node.js的API说起,这里就会有人问了?博主你不是说回调地狱的问题吗,怎么说到API了,别急,看博主一步一步的解释给你听:
全栈程序员站长
2022/11/15
3.2K0
asp.net回调javascript
using System; using System.Collections; using System.IO; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; namespace Platform {  /// <summary>  /// 可以处理客户端的jscript的回调  //
阿新
2018/04/09
7210
浅谈javascript中的回调函数javascript中的函数匿名函数回调函数回调函数的使用回调函数实例总结
要理解javascript中的回调函数,首先我们就要对javascript中的函数有一定的理解,所以我们先从javascript中函数谈起,讲讲它与其他语言中的函数有什么不同。
desperate633
2018/08/22
2.8K0
浅谈javascript中的回调函数javascript中的函数匿名函数回调函数回调函数的使用回调函数实例总结
javascript基础之回调函数
回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
wfaceboss
2019/04/08
8550
如何深度理解JavaScript的回调函数
我们知道,JavaScript他不是一个面向对象语言,但是,我们的JavaScript是一个基于对象的脚本语言。
JanYork_简昀
2022/05/25
1.3K0
如何深度理解JavaScript的回调函数
SystemVerilog中的callback(回调)
在第二次systemverilog实验中,我看到有同学用到了callback函数,今天就是简单讲讲这个方法。
数字IC小站
2020/06/30
2.6K0
点击加载更多

相似问题

C++信号回调(如javascript)

33

C#中的回调,直接在方法中接受回调,如javascript中的

22

Javascript:什么是回调?

40

回调中的Javascript回调

14

如何在javascript中进行ajax回调

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文