代码之家  ›  专栏  ›  技术社区  ›  Vipin

在typescript中使用async await挂起的promise

  •  -1
  • Vipin  · 技术社区  · 6 年前

    当我从show调用loadhtml方法时,总是得到一个悬而未决的承诺。我如何在没有回拨的情况下获得价值。请找到下面的代码剪贴。

       async loadhtml(url: string) {
                var data =$.get(url).then(response=>{
                    console.log("response=>",response)
                    return response
                });
                return await data
            }
    
     show() {
          var data = this.loadhtml(require("../../template/template1.tpl"));
           console.log("html content=> ",data);
    } 
    
    1 回复  |  直到 6 年前
        1
  •  -1
  •   JJJ Sergey    6 年前

    你可以把它包装在一个承诺里,然后返回,这样你就可以使用了 await 在调用函数中等待它。

    async loadhtml(url: string) {
      return new Promise((resolve, reject) => {
        $.get(url).then( response => {
          console.log("response=>",response)
          resolve(response)
        });
      });
    }
    
    async show() {
      var data = await this.loadhtml(require("../../template/template1.tpl"));
      console.log("html content=> ",data);
    }