Callback

setTimeout(()=>{console.log("I'm callback function")},2000);
console.log("I'm 同步任务1")

setTimeout(参数1,参数2,参数...)是一个让程序延缓几毫秒再执行的function。

  • 第1个参数:放想要延缓再执行的function
  • 第2个参数:放想要延缓几毫秒
  • 第3个参数(可选):想放其他的args,沿路放下去

callback的第一个参数,想延缓执行的function,其实就是callback function(回调函式)

callback function(回调函式)

想法

可以想成,去维修中心修电脑,比较难修不能在柜台立马解决的,我们会希望顾客先回去,工程师修好了再打电话叫他,不要一直卡在柜台,会挡到後面的其他顾客。

使用时间

就是这个不要一直卡在柜台的道理,当一个程序要执行得有点久,或是他执行所花费的时间不稳定(i.e.跟网路相关的),我们会希望他不要卡在那里,站着茅坑不...,先去旁边自己玩

同步vs异步

  • 同步:就是一行一行,照顺序执行下来
console.log("A");
console.log("B");
console.log("C");

执行结果就是:
A
B
C

  • 异步:叫他去旁边自己玩,玩完了记得回家就好
    再来看一下开头的例子:
setTimeout(()=>{console.log("I'm callback function")},2000);
console.log("I'm 同步任务1")
* 把要等很久(2秒钟),才要执行的`()=>{console.log("I'm callback function")}`叫他去旁边待着(异步)
* 先执行其他的同步任务
* 等他2秒钟等好了,再执行刚刚去旁边玩的异步任务

小坑请注意:

setTimeout(console.log("t"),5000)
setTimeout(()=>{console.log("t")},5000)

为甚麽上面的不对 一定要用下面的?

function maow(){
	alert("maow")
}
maow;  //只是呼叫这个function object出来让我看看
maow() //呼叫这个function object并执行他

因为有点像maowmaow() 的差别,
setTimeout()的第一个参数需要的不是正在执行的function object。


<<:  【Day 10】Google Apps Script - 环境篇回顾整理

>>:  【D11】再度熟悉厨具:合约

进击的软件工程师之路-软件战斗营 第六周

学习进度 游戏专题 Delay 地图编辑器使用 (自学)人物移动&转向 (自学)子弹360度...

Alpine Linux Porting (一点五?)

持续卡关debug的一天。不过至少可以纪录一下今天弄出debug环境的笔记: 上篇提到seperat...

json档删除符合条件的特定事件该怎麽做?

大家好,我是用python程序 在输出json档之後想做两件事但没有头绪,希望有人可以帮我解惑。 以...

我们的基因体时代-AI, Data和生物资讯 Day02- 机器学习在生物资讯中之应用

上一篇我们的基因体时代-AI, Data和生物资讯 Day01- 超越摩尔定律的资料增长介绍了生医领...

Day02 线上金流再做什麽?

现在时代线上金流其实已经与各位的生活密不可分, 小吃、直播、实体商店、大小型电商等等族繁不及备载, ...