这是我的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文件列表为空。 我该如何解决这个问题?提前感谢
答案 0 :(得分:4)
问题是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
返回数据,以便在等待时可以使用返回值。