使用Node js Await/Async函数



这是我调用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返回数据,以便在等待时使用返回值。

相关内容

  • 没有找到相关文章

最新更新