나는 Xray로 수집 한 메타 데이터가있는 배열을 채우려고했지만 아무런 성공도 거두지 못했습니다. 함수는 내 서버에서 API 경로에 의해 호출되며 내 응용 프로그램에서 링크를 가져옵니다.Xray에서 수집 한 메타 데이터로 배열 채우기
메타 데이터를 긁어내는 데 시간이 걸리므로 약속이 어려워 보입니다. 계속 이동하기 전에 데이터가 수집 될 때까지 기다릴 수없는 것처럼 보입니다. 아마도 저는 Xray가 어떻게 작동하는지 이해하지 못하고 있을까요? 아니면 약속 할까? 나는 이것이 가장 최근의 시도 (그리고 간단한)되고, 내가 생각할 수있는 모든 것을 시도했다 :
function createCollection() {
Promise.all(rawLinks.map(function(link) {
linksArray.push(xray(link, 'title')(function(error, title) {
console.log(title);
return title;
}))
}))
.then(linksArray => {
console.log(linksArray);
});
}
그것은 지금까지하지 않음으로써 내가 해봤 가장 강력한 또는 정교한 솔루션입니다,하지만 가장 최근의 . 먼저 콘솔은 데이터로 "정의되지 않은"배열을 기록한 다음 개별 제목을 기록합니다.
어떤 도움을 주거나 연구 할 방향에 대해 매우 감사하게 생각합니다. 말했듯이, 나는 마치 내 모든 아이디어를 다 써 버렸고 더 이상 볼 곳을 모른다.
'map' 콜백에서 무언가를'linksArray'로 푸시하지 말고 하나의 항목에 대해'return' 만하면됩니다. – Bergi
어떤 약속 라이브러리를 사용하고 있습니까? 'xray' 함수를 [promisify] (http://stackoverflow.com/q/22519784/1048572)해야 할 것입니다. – Bergi