gpt4 book ai didi

javascript - 在所有异步函数完成后执行一个函数?

转载 作者:行者123 更新时间:2023-11-30 08:23:02 26 4
gpt4 key购买 nike

this.validate_label_population();
this.validate_title_prefix();
this.validate_title_suffix();
this.executeGitCommentCreation();

我在构造函数中执行了以下函数。前 3/4 是异步函数:

例子:

  async validate_title_prefix() {
console.log('validate_title_prefix not implemented');
}

我想在所有前一个运行之后最后执行 this.executeGitCommentCreation();。做这个的最好方式是什么?我应该在前 3 名前面抛出 await,还是使用某种 Promise.all?

最佳答案

您可以使用此代码段:

Promise.all([
this.validate_label_population(),
this.validate_title_prefix(),
this.validate_title_suffix()
])
.then(function(values) {
this.executeGitCommentCreation();
}.bind(this));

或者您可以使用箭头函数来获取正确的上下文:

Promise.all([
this.validate_label_population(),
this.validate_title_prefix(),
this.validate_title_suffix()
])
.then(values => {
this.executeGitCommentCreation();
});

或者您甚至可以将 this 缓存到外部上下文:

var _this = this;
Promise.all([
this.validate_label_population(),
this.validate_title_prefix(),
this.validate_title_suffix()
])
.then(function(values) {
_this.executeGitCommentCreation();
});

有关详细信息,请阅读 the docs .

P/s:你的命名规范不统一(驼蛇混用)。我建议对变量/函数使用 camelCase,对类使用 PascalCase,对常量使用 ALL_CAPS

关于javascript - 在所有异步函数完成后执行一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50263888/

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