JavaScript 异步回调函数

异步回调函数的理解

普通函数是从上到下执行的,而异步函数执行完成的时间是不可控的,但是想在他执行完的时候处理结果怎么办?使用回调函数,异步任务的回调函数会在这个异步任务执行完的时候进行调用,进行处理异步任务的数据。

所以说普遍的异步任务都会有一个回调函数,进行数据的处理。

异步回调函数示例

<script>
console.log('主线程开始');
// 使用延时函数产生异步
// 将一个函数作为异步函数的参数,待异步执行完毕时调用
function demo(func){
	setTimeout(()=>{
		let result = 0;
		for (let i = 0; i < 100000000; i++){
			// your code 
			result = i;
		}
		console.log('循环执行完毕,执行异步回调函数');
		func(result);
	}, 2000);
}
demo((result)=>{
	console.log('循环结果 : ' + result);
});
console.log('优先与上面的循环执行');
</script>

上面的示例将一个异步过程封装为一个函数( demo ),并将一个函数作为 demo 函数的参数,在异步函数循环执行完毕后执行的函数就叫做回调函数。

是不是很熟悉? 在很多地方我们都会用到异步回调函数(  如  ajax 异步请求 )。