javascript - JavaScript 中的同步回调函数有什么用?

标签 javascript asynchronous callback

我一直在广泛阅读网络异步编程以及 JavaScript 和 jQuery 中回调的使用。我已经了解了 AJAX 的基础知识。我想不通的是在异步编程中不使用回调函数时的使用。

根据我的理解,简单地向函数添加回调并不能使其成为非阻塞/异步的。异步能力实际上是由环境(浏览器API)提供的。因此,向我编写的函数添加回调不会导致任何异步执行。

例如:

var X;
function Test(A, B, Callback) {
X=A+B*A*B;
Callback(X);
}

Test(99999,999999,function(Data) {
alert(Data);
});

alert("This is not printed first, as it would be in Async.");

在上面,我取了两个数字并对它们执行代数运算。即使我正在使用回调函数,代码执行也会在执行操作时被阻止。然后将执行回调,显示带有计算结果的警报。然后是下一个警报。如果我进行了 XMLHttpRequest 而不是代数运算,由于异步实现,我会首先收到第二个警报。代码流不会像在数学运算期间发生的那样在请求期间被阻塞。

因此,即使使用回调也会阻塞代码执行时,在非异步调用中使用回调有什么用?

最佳答案

一些非常常见的同步回调示例是 Array.prototype 上的方法:forEachmapfilter

回调的作用是提供可以在更大的算法中轻松交换的部分实现。一些设计模式,如 template methodstrategy想到了。

关于javascript - JavaScript 中的同步回调函数有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584458/

相关文章:

jquery - jquery 延迟后启动函数

javascript - Vuejs $emit 没有在回调时触发父函数

javascript - 我正在尝试使用包含我添加到用户数组的新用户对象的内联数组调用 displayUsers

javascript - 如何禁用 CKeditor 格式菜单中的选项?

node.js - Node 异步 waterfall 回调已被调用

javascript - Node.js 表搜索因使用中的 Promise 失败

javascript - IntersectionObserver 去抖器

用于设置变量的 PHP 语法

javascript - React 方法中多次调用 setState() : How to make it work "synchronously"

python - 动态事件条件