理解一个没有诺言的信息



在我的打字稿应用程序中,我使用的是Promise<void>,该应用程序存储在本地范围内的变量中。可能会调用同一类的某些方法,然后等待这个诺言得到解决或拒绝,但这并不总是发生。在没有任何人听的情况下,很有可能开始承诺。当没有人听承诺时,我会在控制台中得到以下错误:

Uncaught (in promise) undefined

承诺中包含的工作成功地运行了谷,没有问题。我只想确定它的含义。我是否可以假设此错误消息只是意味着没有人在听诺言的决心或拒绝,因此,它自己的工作是自己的?无论如何是否有抑制此错误消息?

承诺看起来像这样:

private apiInitialization: Promise<void>;
...
this.apiInitialization = new Promise<void>((resolve, reject) => {
    this.siteService.requestInitialization().then((response: RequestResponse) => {
        // Do some stuff.
        // Resolve promise.
        resolve();
    }).catch(() => {
        // Reject promise.
        reject();
    });
});

我认为这不会解决您的问题,但是我注意到您不必要地围绕另一个承诺创造了额外的承诺。由于请求initialization()返回承诺,因此您根本不需要致电new Promise。在承诺上调用.then会自动产生新的承诺。

this.apiInitialization = this.siteService.requestInitialization()
  .then((response: RequestResponse) => {
    // Do some stuff.
    // If you want apiInitialization to be a Promise<void>, do nothing further.
    // If instead you want the promise to resolve to something, return that something here.
  });
  // No need to do a .catch unless you want to handle the error here

最新更新