Предыдущий вопрос был помечен как дубликат со ссылкой, ведущей меня сюда: Как вернуть ответ от асинхронного вызова? .
Я все еще не смог найти решение, но я думаю, мне потребуется AJAX, чтобы вернуть этот объект, потому что мои функции / GET-запрос еще не завершен, что приводит меня к новому вопросу. Как я могу адаптировать это, чтобы вернуться асинхронно. Я понимаю концепцию Promises и async / await, но я не уверен, как мне реализовать это здесь, чтобы я мог получить доступ к объекту глобально.
[Исходный вопрос]
Возвращение объекта из ниже функции, но я получаю эту ошибку ReferenceError: object is not defined
. Я хотел бы получить доступ к этому глобально, но не могу получить доступ к объекту из-за области видимости. Есть ли что-то, что я упускаю?
При установке глобальной переменной это, похоже, не обновляется.
Например, установка var globalObject = {};
снаружи и использование globalObject = object
внутри объекта похоже, не меняет переменную {}
function getTicket (ticketID) {
var urlID = contentID;
var request = require("request");
var options = {
method: 'GET',
url: `https://www.mywebsite.com/api/${urlID}/body.json`,
headers: {'content-type': 'application/json', authorization: 'Basic PASSWORD=='}
};
request(options, function (response, body) {
var obj = JSON.parse(JSON.stringify(body));
var objContent = JSON.parse(obj.body);
var object = {
id: urlID,
url: 'https://www.mywebsite.com/api/' + urlID,
value: objContent
};
console.log(object.id);
console.log(object.url);
console.log(objContent.body[0].body);
});
return object;
}
getTicket(380289);