팁 : D. 여기 내 코드입니다 :내 nodejs 스크립트에 문제가 있습니다.
const request = require('request');
const cheerio = require('cheerio');
function getUrls(url) {
const baseUrl = 'https://unsplash.com';
let urls = [];
request(url, (err, res, body) => {
if (!err && res.statusCode === 200) {
const $ = cheerio.load(body, { normalizeWhitespace: false, xmlMode: false, decodeEntities: true });
$('.photo.qa-photo a').each((i, e) => {
const lnk = $(e).attr('href');
if (lnk.indexOf('@') === -1 && lnk.indexOf('download') === -1) {
urls.push(baseUrl + lnk);
}
});
}
});
return urls;
}
function getImages(arr) {
let images = [];
for (const url of arr) {
request(url, (err, res, body) => {
if (!err && res.statusCode === 200) {
const $ = cheerio.load(body, { normalizeWhitespace: false, xmlMode: false, decodeEntities: true });
$('script').each((i, e) => {
if (i === 4) {
let img = $(e).text();
img = img.substring(img.indexOf('full') + 7, img.indexOf('regular') - 3);
images.push(img);
}
});
} else {
console.log(err, res.statusCode);
}
});
}
return images;
}
console.log(getImages(getUrls('https://unsplash.com/search?utf8=%E2%9C%93&keyword=life&button=')));
별도로 기능이 잘 작동,하지만 난 두 기능을 결합하려면 먼저 기능이 작업을 완료하지만 난 반환 된 배열을 볼 수 없습니다 나에게 하늘의 배열을 보여 CONSOLE.LOG, 왜? 내 영어로 미안해. 이 작은 프로그램으로 나는 unsplash.com에서 20 이미지의 전체 URL을 얻고 싶습니다 타이.
가능한 복제본 [비동기 호출의 응답을 어떻게 반환합니까?] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- 전화) –