javascript-如何对都返回promise的两个函数的运行进行排序?

我的代码检查word.statusId以查看是否脏了.如果是的话,它将进行单词更新,如果可行,它将更新wordForms.如果干净的话,它只会更新wordForms.有人可以告诉我这是否是处理兑现一项承诺的正确方法吗?

update = (): ng.IPromise<any> => {
        var self = this;
        if (self.word.statusId != 3) {
            return self.wordEditSubmit()
                .then(() => {
                    return self.wordFormCheckAndUpdate();
                })
        } else {
            return self.wordFormCheckAndUpdate();
        }
    }

解决方法:

您所描述的期望行为确实是实际行为.

当您使用arrow functions时,不需要存储以下值:

update = (): ng.IPromise<any> => {
  if (this.word.statusId != 3) {
    return this.wordEditSubmit()
      .then(() => this.wordFormCheckAndUpdate())
  } else {
    return this.wordFormCheckAndUpdate();
  }
}

再次使用ternary condition进行了简化:

update = (): ng.IPromise<any> => {
  return this.word.statusId != 3
    ? this.wordEditSubmit().then(() => this.wordFormCheckAndUpdate())
    : this.wordFormCheckAndUpdate();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐