Объявите прототип и используйте его в том же файле в NodeJS - PullRequest
0 голосов
/ 18 ноября 2018

Я создал функцию, в которой есть прототипы, которые я буду использовать в других файлах.

function.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

Также я бы знал, как экспортировать только значение токена, а не функцию (чтобы я мог использовать тот же токен)

1 Ответ

0 голосов
/ 18 ноября 2018

С такими выражениями функций, как 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()
...