Я знаю, что раньше было много подобных вопросов, но я пробовал каждый из них, и все еще получаю эту конкретную проблему в каждой попытке.Так что я делаю, у меня есть файл с именем data.js, который содержит функцию, которая извлекает данные json из web api и возвращает проанализированную строку Json.У меня есть другой файл, который вызывает эту функцию, и я просто пытаюсь отладить результат на консоли.Но каждый раз, когда я запускаю функцию, я получаю «undefined» на консоли, то есть код выполняется асинхронно, а значение возвращается даже до его извлечения.Вот мой код:
data.js
module.exports = {
holidays: function(x,y,z)
{
function intialize()
{
return new Promise(function(resolve, reject) {
Request.post({
"headers": { "content-type": "application/json" },
"url": //someurl,
"body": JSON.stringify({//some input})
}, function(err, resp, body) {
if (err)
{
reject(err);
}
else
{
resolve(JSON.parse(body));
}
})
})
}
var Request = require("request");
var json_content="";
var req = intialize();
req.then(function(result) {
console.log(result);//getting correct answer here
json_content=result;
//I know I've to return the value somewhere here but how do i do it
}, function(err) {
console.log(err);
});
return(json_content);
}
};
Код в вызывающей функции:
var h= require(__dirname+'/data.js');
console.dir(h.holidays('x','y','z'));//getting undefined