在其他语言中,我习惯于像1,2,3一样执行指令。 JS并没有这样做。我需要非常简单的JS代码来确保指令执行1,2,3而不是2,1,3一次执行,3,1,2执行。
答案 0 :(得分:3)
在其他语言中,我习惯于像1,2,3一样执行指令。 JS不会那样工作。
实际上,JavaScript以这种方式完全。
听起来你正在调用带回调的函数来异步执行某些操作。我们来试试吧。
console.log('1');
doSomethingLater(function callback () {
// This is my callback code
console.log('3');
});
console.log('2');
输出为1,2,3。
在调用doSomethingLater
时,您正在做的是将对匿名函数的引用作为参数传递。 doSomethingLater
在编程完成之前不会调用该函数,这通常需要一段时间。
如果我们忽略回调,很容易看到事情是按顺序执行的。
console.log('1');
doSomethingLater();
console.log('2');
这三个陈述按顺序执行。
为了进一步说明这一点,请考虑使用setTimeout()
的示例,其中我们仅在一秒钟后执行其他代码。 (如果你不熟悉setTimeout()
,请先查看,然后再回到这里继续阅读。)
console.log('1');
setTimeout(function () {
console.log('3');
}, 1000);
console.log('2');
在这个例子中,我们不会在调用setTimeout()
之后的第二秒之前尝试执行回调,所以基本上在console.log('2')
之后一秒;
答案 1 :(得分:1)
按顺序执行JavaScript 。
function doSomething(x) {
console.log('did something', x);
}
console.log(1);
console.log(2);
console.log(3);
doSomething(1);
doSomething(2);
doSomething(3);