Han*_*ans 6 asynchronous node.js
我是node和js的新手,并尝试在express中创建一个网站,在呈现页面之前进行三次Rest API调用.目前我有下面的,它返回一些我转换成对象列表的json.
其中一些属性只返回id值,我想再运行三个API请求,返回这些Id的查找,这样我就可以将这些数据作为有意义的值呈现给用户.
我可以通过运行下一个API调用来同步执行此操作,我当前正在呈现索引页面,但这看起来非常混乱.我看到的所有异步教程都让我的新手思维方式混淆了.有人可以发布一个易于遵循的异步示例,这有点反映了以下结构吗?
var issues_json = "";
var request = http.request(options, function(response) {
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
response.on("data", function(data) {
issues_json += data;
});
response.on("end", function() {
console.log(issues_json);
var column_obj = JSON.parse(issues_json);
res.render('index', {
title: 'List of Issues',
response: issues_json,
objects: column_obj
});
});
response.on("error", function(e) {
console.log(e.Message);
res.render('index', {
title: 'error',
e: e.Message
});
});
});
request.end();
Run Code Online (Sandbox Code Playgroud)
您应该使用请求
你会有类似的东西
app.get("/route", function(req, res) {
var callbackThree = function(error, resp, body) {
var data = JSON.parse(body);
res.send({title; "My Title", data: data});
}
var callbackTwo = function(error, resp, body) {
request("api.com/42", callBackThree);
}
var callbackOne = function(error, resp, body) {
request("api.com/things", callBackTwo);
}
request("api.com/users", callBackOne);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12461 次 |
| 最近记录: |