gpt4 book ai didi

javascript - Javascript 中的异步性

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:37 26 4
gpt4 key购买 nike

我对 Javascript 中的异步性有疑问。据我所知,Javascript 仅使用一个线程,但能够异步处理事件。

我有以下代码:

game.next();
this.autopilot();

现在,我需要函数 game.next 在调用 this.autopilot 函数之前完成。 Javascript 是真的等到 game.next 完成还是立即运行 this.autopilot

如果是,回调是否可以解决问题?

下一个回调函数:

Game.prototype.next = function(callback) {
// Code

if(callback !== undefined) {
callback();
}
};

使用该回调的调用函数:

game.next(function() {
this.autopilot();
}.bind(this));

最佳答案

在您的代码中,game.next() 必须在调用 this.autopilot() 之前返回。

但是,game.next() 可能会启动一个异步过程(例如,一个 Ajax 调用)并在该过程完成之前返回。如果您想推迟执行 this.autopilot() 直到该过程完成,那么您需要某种回调机制。 game.next() 必须将回调函数传递给任何正在发生的异步处理。 (正如您在问题中所建议的那样,在返回之前执行回调是错误的,因为这也会在异步过程完成之前发生。)

关于javascript - Javascript 中的异步性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com