function eatBreakfast () {
console.log('吃早餐');
}
function washingPlate () {
console.log('洗餐盘');
}
function callSomeone (someone) {
console.log('打给' + someone);
setTimeout(function () {
console.log(someone + '回电');
}, 3000);
}
function doWork () {
var auntie = '水阿姨';
eatBreakfast();
callSomeone(auntie);
washingPlate();
}
doWork();
上面这个范例可以一次了解到执行绪与同步、非同步的概念
让我们来解析一下他的程序码吧:
单执行绪 是一种作业系统的运行概念,一次只能做一件事。
如图所示,小明一次只能做一件事,等到做完以後才能按照顺序做下一件事。
相对的,多执行绪 的概念就是可以同时执行上述的三件事情
但可以看到 打给漂亮阿姨 这段有 setTimeout
的非同步事件
非同步的任务会先移动到 事件伫列(Event Queue) 中,等到所有的同步事件执行完之後,才会执行非同步。
这里我们使用执行堆叠的概念来看一下这段程序码的运作方式
setTimeout
只会执行一次就结束setInterval
会在间隔固定的时间不断重复使用者触发的行为也算是非同步事件:
<body>
<p>点我</p>
<script>
function clickThis () {
console.log('click');
}
var dom = document.querySelector('p');
dom.addEventListener('click', clickThis, false);
</script>
</body>
除了使用者互动之外,还有三件事会用到非同步:
<<: Day30 参加职训(机器学习与资料分析工程师培训班),Tensorflow.keras
前言 前面已经知道如何抓「台湾证券交易所」的每日收盘行情 CSV 档,接下来要处理资料,并存入 DB...
本篇 Controller、ViewModel 跟 Day08 范例差不多 依照 View 的差异,...
之前都是教Python内建的函式,今天就要升级罗~今天要教到的是模组,模组跟函式一样都是可以自己创造...
测试系虾米? 丢系试试看目前这个东西有没有达到理想状态,或者有没有不足的地方? 坏掉…等,当然,不可...
前言 今天是个美丽的错误,本来预计将昨日写好的 Encoder 、Decoder 、 LuongAt...