【发布时间】:2020-04-30 20:12:19
【问题描述】:
我正试图将我的头脑围绕着回调,但我不明白回调如何保证一个语句将在之后(就时间而言)另一个语句执行未知的时间。我不关心 promises、await、async 等,我只关心简单的回调,因为我正在努力学习。
例如下面,我的方法将在未知时间事件发生之前执行回调。我可以看到如何使用回调来执行某些事情在(就时间而言)其他东西已经完成执行并返回了一些有意义的东西。
function foo(callback) {
setTimeout(() => console.log("Do something with unknown time"),
2000);
callback();
}
function callback() {
console.log("Execute callback");
}
foo(callback);
所以我要问的是回调可以用来保证时域中的执行顺序吗?还是他们的唯一目的是响应事件?
【问题讨论】:
-
这里的回调不是调用
callback()的函数,而是对console.log()的内联调用。 -
是的,你有一个观点,它是 setTimeout 方法的回调方法。但我想知道的是如何使我的回调在 foo 方法中的第一条语句之后运行。我想要代码做的是等待 2 秒,执行 setTimeout 的回调,即控制台日志,然后执行回调到我的 foo 方法
-
不过,您的函数并不是真正的回调。不管怎样,这里有一个类似的example of using
asyncandawaitto do this。 -
我需要什么才能使它成为真正的回调。就像我提供给 setTimeout 方法的那个一样。我想要一种情况,我的方法类似于 setTimeout,但不是等待特定时间,而是等待前一条语句的完整执行。
标签: javascript asynchronous callback asynccallback