回调

回调

首先明确一点,回调并非异步调用,回调是一种解决异步函数执行结果的处理方法。在异步调用,如果我们希望将执行的结果返回并且处理时,可以通过回调的方法解决。为了更好的区分回调和异步调用的区别,我们来看一个简单的例子,代码如下:

/**
*文件名:callback.js,Node.js示例代码,说明非异步接口调用的Node.js代码执行过程同样是同步的--
*/
function waitFive(name,function_name){  //定义waitFive方法,该方法回调等待5秒
	var pus = 0;
	var currentDate = new Date();
	while(pus < 5000){   //等待5秒
		var now = new Date();
		pus = now - currentDate;
	}
	function_name(name); //执行回调函数
}
function echo(name){   //定义回调函数echo
	console.log(name);
}
waitFive("danhuang",echo); //调用waitFive方法
console.log("its over");

从执行结果可以看出,其执行过程是一个同步执行过程。如果是异步执行的话,其执行结果应该是先输出its over,再打印danhuang。
以上代码是一个回调逻辑,但不是一个异步代码逻辑,因为其中并没有涉及Node.js的异步调用接口。从打印结构可以看出回调和异步调用的区别,当waitFive()函数执行时,整个代码执行过程都会等待waitFive()函数的执行,而并非如异步调用那样watiFive未结束,还会继续执行console.log(“its over”)。因此,回调还是一种阻塞式调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z晨晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值