JavaScript, как вернуть значение, которое я вижу только в консоли?
Я полностью осознаю, что это, вероятно, рассматривается в другом потоке, однако я новичок в JavaScript и Node и не совсем уверен, что я ищу.
Я работаю со слоем презентации под названием Domo и пытаюсь получить доступ к их API для экспорта данных. Часть доступа к их данным - установить токен для подключения.
Я успешно смог сделать вызов и консоль записать значение, но я не могу передать значение объекту, такому как массив. Я считаю, что это анонимная функция, и я искал ее, пытаясь найти способ ее использования. Мое исследование было все от замыканий, обратных вызовов, let, return и немедленного вызова функций, но я что-то здесь упускаю. Может кто-то указать мне верное направление?
**Here is the code:**
var http = require("https");
var tokenoptions = {
"method": "GET",
"hostname": "api.domo.com",
"port": null,
"path": "/oauth/token?grant_type=client_credentials&scope=data%20user",
"headers": {
"Accept":"application/json",
"Authorization": "Basic MyClientAndSecretGoesHere"
}
}
var req = http.request(tokenoptions, function (res) {
var chunks = [];
var token = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
**End Code**
Console.log(body.toString()) - это значение, которое я хочу, но как мне назначить его массиву или объекту? Это анонимная функция?
Буду очень признателен за помощь и заранее извинюсь, если это повторяющийся пост. С возрастом этого сайта, я не вижу, как ни один новый пост не может быть.
1 ответ
Если я правильно понял, вы бы хотели, чтобы данные были объектом Javascript, который будет использоваться вне обратного вызова. Я прочитал документацию по Domo API и надеюсь, что это сработает для вас:
var http = require("https");
var tokenoptions = {
"method": "GET",
"hostname": "api.domo.com",
"port": null,
"path": "/oauth/token?grant_type=client_credentials&scope=data%20user",
"headers": {
"Accept":"application/json",
"Authorization": "Basic MyClientAndSecretGoesHere"
}
}
var req = http.request(tokenoptions, function(res) {
var chunks = [];
var token = [];
res.on("data", function(chunk) {
chunks.push(chunk);
});
res.on("end", function() {
body = Buffer.concat(chunks);
nextAction(JSON.parse(body.toString()));
});
});
req.end();
function nextAction(obj) {
console.log(obj);
}