回调JS代码

时间:2016-10-27 23:40:43

标签: javascript callback

在其他语言中,我习惯于像1,2,3一样执行指令。 JS并没有这样做。我需要非常简单的JS代码来确保指令执行1,2,3而不是2,1,3一次执行,3,1,2执行。

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);