Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何等待承诺的解决?_Javascript_Async Await - Fatal编程技术网

Javascript 如何等待承诺的解决?

Javascript 如何等待承诺的解决?,javascript,async-await,Javascript,Async Await,我试图在返回值之前等待http请求解析,但await不起作用(这是我的API调用函数,但当我执行它时,我总是在控制台中获得resolve:undefined) async getToken():Promise{ return wait this.storage.get('token')。然后(token=>{ log('appToken from storage is',token); 如果(令牌===null){ log(“从API获取令牌”); const headers=新的HttpHea

我试图在返回值之前等待http请求解析,但
await
不起作用(这是我的API调用函数,但当我执行它时,我总是在控制台中获得
resolve:undefined

async getToken():Promise{
return wait this.storage.get('token')。然后(token=>{
log('appToken from storage is',token);
如果(令牌===null){
log(“从API获取令牌”);
const headers=新的HttpHeaders({
“内容类型”:“应用程序/x-www-form-urlencoded”
});
const postData='device_name='+((this.platform.is(“ios”)?“ios”:“android”);
等待这个.http.post(server_url+'/api/register',postData,{headers})
.toPromise()
.然后((数据:TokenResponse)=>{
log('API中的令牌为',data.token);
this.storage.set('token',data.token);
this.storage.set('user\u id',data.user\u id);
返回Promise.resolve(data.token);
},错误=>{
log('获取用户令牌时出错',错误);
返回承诺。拒绝(错误);
});
}否则{
log('从存储器获取令牌',令牌);
返回承诺。解决(令牌);
}
});
}
测试令牌函数(){
this.getToken().then((解析)=>{
console.log(“解析:+resolve”);
}).catch((拒绝)=>{
控制台日志(“拒绝:+拒绝”);
});
}

关键字
wait
将返回承诺的已履行值。因此,不妨尝试一下这种方法

const httpResult = await http.post(server_url+'/api/register', postData, {headers}).toPromise();
现在,您可以处理httpResult中的数据

const httpResult = await http.post(server_url+'/api/register', postData, {headers}).toPromise();