【发布时间】:2018-02-16 17:42:58
【问题描述】:
我正在尝试创建一个从 URL 返回 JSON 对象的函数。 它应该像这样工作:
function getObject(url) {
// return undefined when the url or json is invalid
return object;
}
这样我就可以这样使用它,如果我会使用以下 URL:
var object = getObject('http://ip.jsontest.com/');
console.log('My IP is: ' + object.ip)
示例中的 JSON 如下所示:
{"ip": "127.0.0.1"}
所以上面的代码应该记录这个:
我的IP是:127.0.0.1
我已经用 request 模块试过了,在 StackOverflow 上找到了这个例子:
request.get({
url: 'http://ip.jsontest.com/',
json: true,
headers: {'User-Agent': 'request'} }, (err, res, data) => {
if (err) {
console.log('Error:', err)
} else if (res.statusCode !== 200) {
console.log('Status:', res.statusCode)
} else {
// data is already parsed as JSON:
console.log(data)
}
})
数据按应有的方式显示在控制台中,但我发现无法像上面提供的示例中那样使用它。 有没有办法在没有回调的情况下解决这个问题?我读到请求是异步的,但我需要一个同步解决方案。
【问题讨论】:
-
Node.js 异步运行。你可以使用 Promises 或 Async/Await。
-
您不应该需要同步解决方案。如果您采用异步编程模式(例如 Promise),则永远没有必要。
标签: javascript json node.js object url