【发布时间】:2018-04-18 00:44:41
【问题描述】:
我完全知道这可能在另一个线程中有所涉及,但是,我是 JavaScript 和 Node 的新手,并不完全确定我在寻找什么。
我正在使用一个名为 Domo 的表示层,并尝试访问他们的 API 以导出数据。访问他们的数据的一部分是建立一个令牌来连接。
我已经成功地进行了调用并在控制台记录了该值,但我无法将值推送到诸如数组之类的对象。我相信这是一个匿名函数,并且一直在寻找一种方法来使用它。我的研究涵盖了闭包、回调、让、返回和立即调用的函数,但我在这里遗漏了一些东西。谁能指出我正确的方向?
**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()) 是我想要的值,但我如何将它分配给数组或对象?这是一个匿名函数吗?
如果这是重复的帖子,我将非常感谢您的帮助并提前道歉。随着这个网站的年龄,我看不出任何新帖子是不可能的。
【问题讨论】:
-
为什么需要将它存储在数组中?为什么不能将其存储在变量中?
-
将其分配给数组:
var arr = [body.toString()]。请记住,无论您想对该值做什么,都必须在该回调函数中执行。 -
函数是匿名的并不重要,重要的是它被异步调用。
-
谢谢你们,我认为它应该是数组的原因是返回的元素数量。请求的令牌作为包含下一个 HTTP 请求的所有元素的 JOSN 接收。希望我说的是正确的,下面是返回值的示例。 { "access_token":"NewToken" "token_type":"bearer", "expires_in":3599, "scope":"data user", "customer":"MyURL", "env":"prod3", "userId" :”MyUser”, “role”:“Admin”, “jti”:“SomeCodeHere” }
标签: javascript domo