Javascript 按顺序输出的回调

Javascript Callbacks to Output in Order

这些函数的输出以正确的顺序调用,如 2、3、1,但我喜欢它先输出 1,然后输出 2、3。

const firstFunction = () => {
  setTimeout(function() {
    console.log(1);
  }, 3000);
}

const secondFunction = () => {
  console.log(2);
}

const thirdFunction = () => {
  console.log(3);
}

firstFunction();
secondFunction();
thirdFunction();

我尝试使用回调,但在执行 1 后没有输出 2、3。

const firstFunction = () => {
  setTimeout(function() {
    console.log(1);
  }, 3000);
}

const secondFunction = (callback) => {
  console.log(2);
  callback();
}

const thirdFunction = (callback) => {
  console.log(3);
  callback();
}

firstFunction(function() {
  secondFunction(function() {
    thirdFunction();
  });
});

如何使用回调来实现这一点?

firstFunction 是第一个应该有回调的函数。而且,你有什么理由在 firstFunction 中设置超时吗?

const firstFunction = (callback) => {
  setTimeout(function() {
    console.log(1);
    callback();
  }, 3000);
}

const secondFunction = () => {
  console.log(2);
}

const thirdFunction = () => {
  console.log(3);
}

firstFunction(function() {
  secondFunction();
  thirdFunction();
});