传统的同步执行的代码

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的靠前的。

最后修改日期: 2018年12月6日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。