什么是回调CallBack
==============================
在JavaScript中如何使用回调
在Node.js中如何使用回调
同步编程和异步编程的区别
事件循环是什么
==============================
什么是回调
将一个函数A作为参数传递给另一个函数B,
并且执行的顺序是先执行B,执行完B,然后执行A。
这样就能够严格控制函数的执行顺序,这一点在网络编程中尤其有用。
因为在网络编程中你是无法确定两个http请求A和B,
谁先完成,谁后完成。即便A请求在先,B请求在后。
如果A请求和B请求之间没有依赖关系或许一切还好,但是一旦,B请求的
执行是建立在A请求执行完成的基础上,那么,问题就会出现。
这是初涉JavaScript网络编程人常识的盲区,有时苦苦检查就是不得其要的原因。
下面以一个例子讲解:
let http = require('http');
http.get({host: 'www.baidu.com'} , function() {
console.log('return from baidu');
});
http.get({host: 'www.taobao.com'} , function() {
console.log('return from taobao');
});
我们期许中首先访问baidu然后访问taobao,但是事实是
return from taobao
return from baidu
事与愿违,岂不痛哉!那么如何才能让程序的运行符合我们的意愿,也即是先访问
baidu,然后访问taobao呢?这就必须使用回调。
let http = require('http');
http.get({host: 'www.baidu.com'} , function() {
console.log('return from baidu');
http.get({host: 'www.taobao.com'} , function() {
console.log('return from taobao');
});
});