作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Javascript 新手,刚刚开始阅读有关回调的内容。当我必须管理整个流程时,一切对我来说都很清楚,但是当我必须发出 http 请求时,我无法理解它们是如何工作的。阅读有关回调的内容后,我发现了以下代码片段:
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
}
doHomework('math', function() {
alert('Finished my homework');
});
在这种情况下,我很清楚这些是该过程的主要步骤:
我将尝试解释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/
我是一名优秀的程序员,十分优秀!