这是我调用API的axios请求。
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')
}
理想情况应该是这样的,只有在承诺得到解决后,它才应该继续,现在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
返回数据,以便在等待时使用返回值。