简体   繁体   English

在离子页面中返回Promise.reject

[英]Return Promise.reject in ionic page

I'm calling a service method from inside a component, which returns me a Promise. 我正在从组件内部调用服务方法,这向我返回了Promise。 I want to do different things based on if the promise is resolved or rejected. 我想根据诺言是否得到解决而做不同的事情。 I'm doing it like this: 我正在这样做:

the function that calls the service method 调用服务方法的函数

onAddProvider() {
  this.userInteraction.addContact(data.email, 'bp').then(
    successMessage => {
      doSomething();
    },
    failureMessage => {
      doSomethingElse();
    });
}

the service method 服务方式

addContact(email: string, type: string) {
  return new Promise((resolve, reject) => {
    if (!email.match(patterns.email)) {
      return Promise.reject('Bad email address');
    }

    let data = {
      to: email,
      from: this.dataStorage.data.id,
      type: type,
      date: new Date().getTime()
    };

    this.http.post(`${serverURL}action=sendAddRequest&token=${localStorage['token']}`, JSON.stringify(data))
      .map((res: Response) => res.text())
      .subscribe(response => {
        resolve('Request sent');
      });
  });
}

I was expecting the failureMessage function to run when Promise.reject is returned, but instead I get this error in the console: 我期待返回Promise.reject时运行failureMessage函数,但是我在控制台中收到此错误:

EXCEPTION: Error: Uncaught (in promise): Bad email address

Replace: 更换:

return Promise.reject('Bad email address');

with

return reject('Bad email address');

也可以拒绝它并引发错误。

throw "Error";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM