submit_form(){
console.log(this.check_mobile());
}
async function check_mobile(){
if(this.signup.mobile != ''){
var link = 'https://www.example.com/Android/check_mobile';
var post_data = JSON.stringify({mobile: this.signup.mobile});
this.http.post(link, post_data).map(res => res.json()).subscribe(data => {
if(data == 0){
return await false;
}
else{
return await true;
}
});
}
else{
return false;
}
}
任何人都可以告诉我它为什么不起作用?我怎样才能使它可行?抱歉我的英语不好。
答案 0 :(得分:0)
首先return await true
或return await false
是还原剂。你可以return true
或return false
,事实上你甚至不需要await
/ async
。
它不起作用,因为您正在使用Observable
并且您没有等待它。请改用Promise
(您可能需要导入rxjs/add/operator/toPromise
)。
function check_mobile(){
if(this.signup.mobile != '') {
var link = 'https://www.example.com/Android/check_mobile';
var post_data = JSON.stringify({mobile: this.signup.mobile});
return this.http
.post(link, post_data)
.map(res => res.json())
.toPromise()
.then(data => {
if(data == 0) {
return false;
}
else {
return true;
}
});
}
else {
return false;
}
}
或使用await
:
async function check_mobile(){
if(this.signup.mobile != '') {
var link = 'https://www.example.com/Android/check_mobile';
var post_data = JSON.stringify({mobile: this.signup.mobile});
const data = await this.http
.post(link, post_data)
.map(res => res.json())
.toPromise();
if(data == 0) {
return false;
}
else {
return true;
}
}
else {
return false;
}
}