iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
0
自我挑戰組

前端工程師的30份套餐系列 第 6

Day6-Callback function

Callback(回調)其實跟一般函式沒什麼不同,差別在於被呼叫執行的時機。而一般來說函式先呼叫的會先執行,像是這個例子

function a() {
    console.log('a');
}
function b() {
    console.log('b');
}
a();
b();
//結果為: 
//a
//b

但是若a()執行時間比b()來的久,b()都跑完了a()還沒跑完,就會像是這樣:

function a() {
    setTimeout(function(){
        console.log('a');
    },1000);
}
function b() {
    console.log('b');
}
a();
b();
//結果為: 
//b
//a

其實Callback就是把函式當作另一個函式的參數,然後在外部函式中調用該函式來完成某些事情。

所以用這個特性把b()傳進去a(),等待a()執行完之後再執行b(),就會是正確順序

function a(callback) {
    setTimeout(function(){
        console.log('a');
        callback();
    },1000)
}
function b() {
    console.log('b');
}
a(b);  //把b()傳入a();
//結果為:
//a
//b

上一篇
Day5- JavaScript的this
下一篇
Day7- ES6 解構賦值
系列文
前端工程師的30份套餐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言