传统的同步执行的代码
function a() {
console.log('a');
}
function b() {
console.log('b');
}
function c() {
console.log('c');
}
a();
b();
c();
将顺序输出,a b c
使用定时器异步执行代码
function a() {
setTimeout(function() {
console.log('a');
}, 100);
}
function b() {
console.log('b');
}
function c() {
console.log('c');
}
a();
b();
c();
这里将输出b c,a将在100ms后执行。同理setTimeout也可以使用setInterval方法,区别在于setInterval方法将反复尝试执行方法,也就是每隔100ms后就会出现一个a;
process.nextTick()与setImmediate()
function a(i) {
console.log('a' + i);
}
function b() {
console.log('b');
}
function c() {
console.log('c');
}
setImmediate(function () {
a(1);
});
process.nextTick(function () {
a(2);
});
a(3);
b();
c();
将输出a3 b c a2 a1,这里可以看出process.nextTick设定的执行顺序是要比setImmediate的靠前的。
留言