同步调用、回调和异步调用区别
同步调用是以一种阻塞式调用
比如说:古代的长城的烽火传递信息,现在我们假设每个烽火只能看到相邻的烽火状态,每个烽火的状态只有亮和暗。
现在有A、B、C、D四个烽火,A首先点亮,B看到A的烽火亮了,立马去点火,花了2秒点亮。但是这时候负责C烽火的人在睡觉,可是这时候所有人都在等待C点亮,终于C睡了2个小时候看到了B点亮,然后去点亮。D由于长期没有点亮,导致烽火出现问题,因此整个过程都在等待D的完成。
伪代码:
A.lightUp(){ this.do(); this.onComplete(this.tell(F));}B.lightUp(){ this.do(); this.onComplete(this.tell(F));}C.lightUp(){ this.do(); this.onComplete(this.tell(F));}D.lightUp(){ this.do(); this.onComplete(this.tell(F));}