繁体   English   中英

使用Node js Await / Async函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM