回调函数是在另一个函数执行完成后执行的函数,允许异步函数在不阻塞主线程的情况下通知其他函数。它通过作为参数传递给异步函数,并在异步函数完成执行时被调用。回调函数在异步编程、提高代码可读性和实现模块化方面提供优势,但也会带来回调地狱和延迟绑定的缺点。

什么是回调函数
在 JavaScript 中,回调函数是一个在另一个函数执行完成后才运行的函数。它允许异步函数(在不阻塞主线程的情况下运行的函数)在完成时通知其他函数。
如何使用回调函数
回调函数通过作为参数传递给异步函数。当异步函数完成执行时,它会调用回调函数,并传递任何计算的结果。
示例:使用 XMLHttpRequest
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api/data');
xhr.onload = function() {
// 当请求完成时执行的回调函数
if (xhr.status === 200) {
console.log(xhr.responseText);
} else {
console.error('请求失败:', xhr.status);
}
};
xhr.send();在这个示例中,onload 事件侦听器是一个回调函数,它在请求完成时执行。如果请求成功,它会记录响应文本。
优势
- 异步编程:回调函数允许异步函数在不阻塞主线程的情况下运行。
- 代码可读性:回调函数将异步操作封装在一个易于理解的函数中。
- 模块化:回调函数可以从应用程序的其他部分轻松重用。
缺点
- 回调地狱:嵌套回调函数过多可能导致代码难以理解和调试。
- 延迟绑定:回调函数的执行时间不确定,这可能会导致意外行为。









