gpt4 book ai didi

javascript - http 请求中的回调调用在哪里 (javascript)

转载 作者:行者123 更新时间:2023-12-02 23:38:20 24 4
gpt4 key购买 nike

我是 Javascript 新手,刚刚开始阅读有关回调的内容。当我必须管理整个流程时,一切对我来说都很清楚,但是当我必须发出 http 请求时,我无法理解它们是如何工作的。阅读有关回调的内容后,我发现了以下代码片段:

function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}

doHomework('math', function() {
alert('Finished my homework');
});

在这种情况下,我很清楚这些是该过程的主要步骤:

  1. 我们创建一个名为 doHomework 的函数对象
  2. 调用该函数并传递两个参数(主题和回调函数)
  3. 打印给定主题的警报
  4. 回调被调用,因此我们会收到一条提醒:“完成我的作业”。

我将尝试解释http请求中我不清楚的内容:我知道javascript是一种事件驱动语言,因此我们不能依赖阻塞函数,因为代码的执行不会等待完成并且因此,例如,如果我们发出 GET 请求,我们不能依赖下一行代码中的响应填充了相关数据这一事实。为了解决这个问题,使用回调来确保数据是我们所关注的。问题是我看不到回调在哪里被调用。在 jquery 中我们可以做这样的事情:

$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);

我知道这个 jquery 方法可能已经过时,但我发布了,因为它使用了回调函数。 回调调用在哪里?

最佳答案

引擎(浏览器)将启动一些后台任务来执行请求,然后当请求完成时,它将调用回调。因此,回调调用深深嵌套在浏览器源代码内部的某个位置。

JavaScript 是一种解释型语言,这意味着解释器可以提供语言本身未编写的附加功能。

<小时/>

1:当然,这只适用于 native API,不适用于像 jQuery 这样的用户态代码。然而,jQuery 将在内部调用这些 native API 之一,并添加一个回调来回调您。

 // a simplified example:
function get(url, callback) {
fetch(url).then(function(res) { // the native API call adding a callback
callback(res); // which then calls back
});
}

关于javascript - http 请求中的回调调用在哪里 (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56193267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com