SlideShare a Scribd company logo
1 of 61
Download to read offline
Event loop
我們來來看非同步函式在event loop的過程
mix( )
mix( )
Conso.log(1)
mix( )
mix( )
setTimeout(timer2,0)
mix( )
setTimeout(timer2,0)
mix( )
timer2( )
mix( )
timer2( )
setTimeout(timer3,0)
mix( )
timer2( )
setTimeout(timer3,0)
mix( )
timer2( ) timer3( )
mix( )
timer2( ) timer3( )
Conso.log(4)
mix( )
timer2( ) timer3( )
timer2( ) timer3( )
timer3( )
timer2( )
timer3( )
Conso.log(2)
timer2( )
timer3( )
timer2( )
timer3( )
timer3( )
timer3( )
Conso.log(3)
timer3( )
範例例
wakeMeUp
wakeMeUp( )
wakeMeUp( )
wakeMeUp( )
wakeMeUp( )
clock("6am", 3, function () {
console.log('6 am, clock');
clock("7am", 2, function () {
console.log('7 am, clock');
})
})
wakeMeUp( )
wakeMeUp( )
clock("6am", 3, function () {
console.log('6 am, clock');
clock("7am", 2, function () {
console.log('7 am, clock');
})
})
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
wakeMeUp( )
clock("6am", 3, function () {
console.log('6 am, clock');
clock("7am", 2, function () {
console.log('7 am, clock');
})
})
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
wakeMeUp( )
clock("6am", 3, function () {
console.log('6 am, clock');
clock("7am", 2, function () {
console.log('7 am, clock');
})
})
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
wakeMeUp( )
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
console.log(6am ‘, setTimeout');
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
console.log('6 am, clock');
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
clock("7am", 2, function () {
console.log('7 am, clock');
})
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
clock("7am", 2, function () {
console.log('7 am, clock');
})
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
clock("7am", 2, function () {
console.log('7 am, clock');
})
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
myCallback();
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
function () {
console.log(set_time + ',
setTimeout');
myCallback();
}
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
console.log(7am’, setTimeout');
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
myCallback();
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
myCallback();
console.log('7 am, clock');
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
myCallback();
wakeMeUp( )
setTimeout(function () {
console.log(set_time + ',
setTimeout');
myCallback();
}, delayTime);
wakeMeUp( )

More Related Content

What's hot

Java AWT Calculadora
Java AWT CalculadoraJava AWT Calculadora
Java AWT Calculadorajubacalo
 
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsOpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsHo Kim
 
D2D Pizza JS Игорь Ковган "Koa поможет"
D2D Pizza JS Игорь Ковган "Koa поможет"D2D Pizza JS Игорь Ковган "Koa поможет"
D2D Pizza JS Игорь Ковган "Koa поможет"Dev2Dev
 
Фатальный недостаток Node.js
Фатальный недостаток Node.jsФатальный недостаток Node.js
Фатальный недостаток Node.jsOleksii Okhrymenko
 
Lightning talk second
Lightning talk secondLightning talk second
Lightning talk secondShinUsuda
 
Java осень 2012 лекция 6
Java осень 2012 лекция 6Java осень 2012 лекция 6
Java осень 2012 лекция 6Technopark
 
Caculadora pacho (1)
Caculadora pacho (1)Caculadora pacho (1)
Caculadora pacho (1)san jaramillo
 
NrStage 사용하기
NrStage 사용하기NrStage 사용하기
NrStage 사용하기Yongwu Choi
 
Rambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тестыRambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тестыRAMBLER&Co
 
Rafael torrest
Rafael torrestRafael torrest
Rafael torrestrfltorres
 
Colecções C#
Colecções C#Colecções C#
Colecções C#nonametgp1
 
Menguak Misteri Module Bundler
Menguak Misteri Module BundlerMenguak Misteri Module Bundler
Menguak Misteri Module BundlerRiza Fahmi
 

What's hot (17)

Java AWT Calculadora
Java AWT CalculadoraJava AWT Calculadora
Java AWT Calculadora
 
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsOpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
 
Osmose
OsmoseOsmose
Osmose
 
D2D Pizza JS Игорь Ковган "Koa поможет"
D2D Pizza JS Игорь Ковган "Koa поможет"D2D Pizza JS Игорь Ковган "Koa поможет"
D2D Pizza JS Игорь Ковган "Koa поможет"
 
Фатальный недостаток Node.js
Фатальный недостаток Node.jsФатальный недостаток Node.js
Фатальный недостаток Node.js
 
Lightning talk second
Lightning talk secondLightning talk second
Lightning talk second
 
Java осень 2012 лекция 6
Java осень 2012 лекция 6Java осень 2012 лекция 6
Java осень 2012 лекция 6
 
Caculadora pacho (1)
Caculadora pacho (1)Caculadora pacho (1)
Caculadora pacho (1)
 
NrStage 사용하기
NrStage 사용하기NrStage 사용하기
NrStage 사용하기
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Ep3 ff994
Ep3 ff994Ep3 ff994
Ep3 ff994
 
Rambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тестыRambler.iOS #8: Чистые unit-тесты
Rambler.iOS #8: Чистые unit-тесты
 
Java Week7 Notepad
Java Week7   NotepadJava Week7   Notepad
Java Week7 Notepad
 
Rafael torrest
Rafael torrestRafael torrest
Rafael torrest
 
Colecções C#
Colecções C#Colecções C#
Colecções C#
 
Menguak Misteri Module Bundler
Menguak Misteri Module BundlerMenguak Misteri Module Bundler
Menguak Misteri Module Bundler
 
Algoritmo secuencial
Algoritmo secuencialAlgoritmo secuencial
Algoritmo secuencial
 

I will be callback/JS同步與非同步