[英]working with Node js Await/Async functions
这是我的axios调用API的请求。
export function axiosGet (url) {
return opsutils.get(url)
.then(function (response) {
return response.data.data;
})
.catch(function (error) {
return 'An error occured..' + error;
})
}
从这里我叫它不同步
async getDirList(data){
this.domainDir=data.domain_name
var apiurl="some URL"
var stat = await axiosGet(apiurl)
if (status){
this.domainlog= stat
}
从这里我叫上面定义的异步函数
Notify(data){
var filelist = this.getDirList(data)
if(filelist){
var status = createNotification(data.domain_name,message_stripped,'Degrading web server performance')
}
理想应该是这样的,它应该仅在promise解决后才继续进行,现在var文件列表为空。 我该如何解决这个问题?
问题是this.getDirList(data)
也不能异步访问。 记住,因为现在是异步的,它正在返回一个Promise,所以您要么需要将其与.then()
:
Notify(data){
var filelist = this.getDirList(data)
.then(data => {
var status = createNotification(data.domain_name,message_stripped,'Degrading web server performance')
});
}
或者也将Notify()
转换为异步函数:
async Notify(data){
var filelist = await this.getDirList(data);
if(filelist){
var status = createNotification(data.domain_name,message_stripped,'Degrading web server performance')
}
此外,请确保您实际上是从getDirList
返回数据,以便可以在等待时使用返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.