Return Promise.reject 在离子页面
Return Promise.reject in ionic page
我从组件内部调用一个服务方法,returns 我是一个 Promise。我想根据承诺是否得到解决或拒绝来做不同的事情。我是这样做的:
调用服务方法的函数
onAddProvider() {
this.userInteraction.addContact(data.email, 'bp').then(
successMessage => {
doSomething();
},
failureMessage => {
doSomethingElse();
});
}
服务方式
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');
});
});
}
当返回 Promise.reject 时,我期望 failureMessage
函数为 运行,但我在控制台中收到此错误:
EXCEPTION: Error: Uncaught (in promise): Bad email address
替换:
return Promise.reject('Bad email address');
和
return reject('Bad email address');
也可以报错拒绝
throw "Error";
我从组件内部调用一个服务方法,returns 我是一个 Promise。我想根据承诺是否得到解决或拒绝来做不同的事情。我是这样做的:
调用服务方法的函数
onAddProvider() {
this.userInteraction.addContact(data.email, 'bp').then(
successMessage => {
doSomething();
},
failureMessage => {
doSomethingElse();
});
}
服务方式
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');
});
});
}
当返回 Promise.reject 时,我期望 failureMessage
函数为 运行,但我在控制台中收到此错误:
EXCEPTION: Error: Uncaught (in promise): Bad email address
替换:
return Promise.reject('Bad email address');
和
return reject('Bad email address');
也可以报错拒绝
throw "Error";