我想执行回调函数
function recurring_end() {
var sql= "SELECT `bookmarks`.`id`,`bookmarks`.`bookmark_url` as url FROM bookmarks LIMIT 0, 10";
connection.query(sql, function(err,bookmarks) {
for(var i = 0; i< bookmarks.length; i++){
(function(i) {
parseArticle(i,function(err,result){
console.log("Result is "+JSON.stringify(result));
NewParseArtilce(result,function() {
console.log("New Parse Artilce is " +i);
});
});
})(i);
}
});
}
function NewParseArtilce(i,callback){
console.log("New Article Number is is "+i);
}
function parseArticle(i,callback) {
console.log("Parse Article Number is " +i);
return i;
};
这是我的代码。我首先执行parseArticle函数然后我想将结果传递给 newParseArticle 但是我没有在parseArtilce中得到任何结果。
任何想法,为什么会导致问题
由于
答案 0 :(得分:1)
因为您的parseArticle
是同步的。它应该是:
function parseArticle(i, callback) {
console.log("Parse Article Number is " +i);
callback(null, i); // executes the callback, null is err and i is result
}
你的上一次console.log
也不会被执行。你应该这样做:
function NewParseArtilce(i,callback){
console.log("New Article Number is is "+i);
callback(); // executes the callback
}