이 코드는 Node.js crawler에서 실행되며 모든 데이터를 가져 오는 단순화 된 코드입니다. 하지만이 내부에 삽입 어떻게 "콜백"datas [I] .name을을 : 기능 값 VAR의 "I" I = 0 ... 내가 이름을 추가 해요 때 (VAR에 대한주기에서 오류를 반환 :함수는 세 개의 인수 만 표시합니다.
형식 오류 :. 정의되지 않은
var Crawler = require("crawler").Crawler;
var crawler = new Crawler;
var datas = [
{name: 'John', url: 'john025'},
{name: 'Jim', url: 'jim04567'}
];
function crauler(done) {
for (var i = 0; i < datas.length; i++) {
var link = 'http://somesite.com/' + datas[i].url;
crawler.queue([{
"uri": link,
// inside this func
"callback": function (error, result, $, datas, i) {
var arr = $('.blogpost').map(function (index) {
var str = $(this).attr('href');
var object = {
numb: str,
name: datas[i].name
};
return obj;
}).get().join(',');
done(arr);
} }]) }; };
crauler (function (arr) {
console.log(arr);
});
선언'i'가 외부 루프 :
그래서, 콜백 함수의 정의는 다음과 같습니다 뭔가해야합니다. –
@bfavaretto 그렇지 않습니다. 변수를 루프하는 것이 TypeError의 주된 문제는 아닙니다. 자세한 내용은 내 대답을 참조하십시오. –
@jaux이 오류는 [악명 높은 루프 문제] (http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem)를 해결하려는 시도로 인해 발생하므로 속임수 링크가 의미가 있습니다. 좋은 답변입니다. – bfavaretto