예를 들어 더 많은 데이터 (해당 사용자와 연결된 팀)를 검색 할 수 있도록 API (사용자)에서 일부 데이터를 검색하려고합니다. 예 :중첩 노드 가져 오기 호출을 구현하려면 어떻게해야합니까?
var fetch = require('node-fetch');
app.get('/users/:username', function (req, res) {
var username = req.params.username;
var user = new Object();
fetch('https://api.github.com/users/' + username)
.then(function(res) {
return res.json();
}).then(function(json) {
console.log(json);
user.handle = json.login;
}).then(fetch('https://api.github.com/users/' + username + '/repos')
.then(function(res) {
return res.json();
}).then(function(json) {
console.log(json);
//user.repos = repos
var payload = new Object();
payload.user = user;
console.log(payload);
res.send(payload);
})
);
});
저는 노드를 처음 사용하는 데 어려움이 있으며 제대로 수행하는 방법을 찾지 못했습니다. 첫 번째 가져 오기 호출은 잘 작동하지만 중첩 된 호출은 너무 많지 않습니다. 올바른 방향으로 나를 가리키는 오류 메시지는 없습니다. 당신이 .then()
에 그 결과를 전달하는 즉시 fetch()
를 호출하고, 당신이 그 일을했다
.then(() => fetch('https://api.github.com/users/' + username + '/repos').then(...))
방법이에
.then(fetch('https://api.github.com/users/' + username + '/repos').then(...))
:
나는 당신이 말하는 것을보고 있습니다. 나는이 약속의 물건을 읽어야한다. 가장 중요한 점은 내 서버가 get 요청을 받으면 결합 된 데이터가 포함 된 응답을 보내기 전에 두 페치를 모두 완료해야한다는 것입니다. – Roderick
@VGambit - 그럼, 내'Promise.all()'예제를 사용하고 싶을 것입니다 (방금 오류가 수정되었습니다). – jfriend00