0

我创建了一个函数,该函数具有我将在其他文件中使用的原型。

函数.js

function Graph() {
  //Constructor
  this.Client = null;
}
module.exports = Graph;
Graph.prototype.Init = async function Init() {
      ....
      tokenResult = await GetToken();
};

function GetToken() {
 ...
};

我会在文件之外使用 GetToken 方法。所以我添加了 GetToken 函数作为原型

function Graph() {
  //Constructor
  this.Client = null;
}
module.exports = Graph;
Graph.prototype.Init = async function Init() {
      ....
      tokenResult = await GetToken(); <== Error here
};
Graph.prototype.GetToken = function GetToken() {
     ...
};

当我运行我的程序时,我得到这个错误:

GetToken is not defined

另外我会知道如何只导出令牌的值而不是函数(这样我就可以使用相同的令牌)

4

1 回答 1

1

对于像这样的函数表达式Graph.prototype.GetToken = function GetToken(),名称GetToken仅在函数体中是局部的。因此,要以您想要的方式使用它,您需要参考this.GetToken()从原型中获取函数:

function Graph() {
  //Constructor
  this.Client = null;
}
Graph.prototype.Init = async function Init() {
      tokenResult = await this.GetToken(); 
      console.log(tokenResult)
};
Graph.prototype.GetToken = function GetToken() {
     return Promise.resolve("GetToken Called")
};

g = new Graph()
g.Init()

于 2018-11-18T01:00:18.817 回答