Экспорт функции, находящейся внутри другой функции - PullRequest
0 голосов
/ 23 мая 2019

Когда сервер запускается, я вызываю функцию:

server.listen(port, someFunction());

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

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

someFunction(){
  someObject={
    //this gets populated with some asynchronous operation.
  }
  functionInsideFunction(){
   //I want this function to return someObject of the parent function
  }
 //This function can't return anything because it shows error, as this is 
  // being invoked at the server start.
}

Я хочу экспортировать functionInsideFunction, чтобы я мог получить данные, хранящиеся в someFunction, в другом файле!

Так каким должен быть мой подход!?

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Вы также можете сделать что-то вроде этого:

const http = require('http')
// create your global object
let myObj = { }


var requestListener = function (req, res) {
  // use the object
  console.log(myObj);
  res.writeHead(200);
  res.end('Hello, World!');
}

var server = http.createServer(requestListener);
server.listen(3000, function() { 
  console.log("Listening on port 3000")
  // fill the object here
  myObj = {
    'name': 'hello'
  };
});
0 голосов
/ 23 мая 2019

Server.listen ожидает функцию обратного вызова, но someFunction, похоже, никому не возвращает.

Вы можете сделать server.listen(port, someFunction.functionInsideFunction); или return functionInsideFunction() {} в некоторой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...