我正在学习如何在Node.js中读取json数据(针对walkscore.com api),并找到了请求模块。我知道如何使其在“请求”块内执行操作。但是,我在函数中调用它,并且我希望该函数返回json数据。我如何能够简单地在函数内部但在请求块之外访问“ body”变量?
var request = require("request")
function loadWalkScore(lat, lon, address, name, state) {
var address = encodeURI(address)
var url = "http://api.walkscore.com/score?format=json&address=" + address
url += "&lat=" + lat + "&lon=" + lon + "&wsapikey=" + wsapikey
request(url, { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
// somehow make loadWalkScore() function return <body>
});
}
答案 0 :(得分:0)
您可能希望const SUPPORTED_PHP_VERSIONS
接受一个回调参数,并在您的请求回调中调用它。在编写Node代码时,您的函数很少实际返回您所要求的数据,它们会接受(并最终调用)您提供的回调,或者返回Promises(最终会使用所请求的数据进行解析)。这是处理HTTP请求等异步操作的方法。
可能类似于:
trigger('wordUpdated', [
transition("* => *", group([
query(':enter', [
style({ opacity: 0, transform: 'translateY(40%)' }),
animate('.5s ease-out', style({ opacity: 1, transform: 'translateY(0%)' }))
], { optional: true }),
query(':leave', [
style({ opacity: 1, transform: 'translateY(0%)' }),
animate('.5s ease-out', style({ opacity: 0, transform: 'translateY(-40%)' }))
], { optional: true })
]))
])
然后将其命名为:
I like <span class="block" [@wordUpdated]="word">
<span class="span" *ngFor="let word of [ word ]">
{{ word }}
</span>
</span>