0
我是新來的Node/Javascript,並試圖通過加載另一個url songLink
來獲取URL audioLink
。然後,我會將它們添加到一個新對象rapSong
。爲了實現這一點,我使用異步系列,以便調用將異步發生。我嘗試了其他方法,例如使用異步瀑布和只是回調沒有成功。Async.series:函數外部未定義變量
audioLink
是undefined
,除非我在getAudioLink
函數內。此外,async.series中的函數不能以正確的順序運行。有什麼建議?
//for each song..
songLinkElem.each(function(i, s) {
var songName = StringUtils.removeWhiteSpacesAndNewLines($(s).children(".title_with_artists").text());
var songLink = $(s).attr("href");
var audioLink;
async.series([
function(callback){
function getAudioLink(songLink, callback){
request(songLink, function(err,resp,body){
$ = cheerio.load(body);
var audioElem = $(body).find(".audio_link > a");
var audioLink = audioElem.attr("href");
return callback(audioLink);
});
}
getAudioLink(songLink, function(resp){
audioLink = resp;
console.log("one");
})
console.log("two");
callback();
},
function(callback){
var rapSong = new Song(songName, artistLink, songLink, audioLink);
rapArtist.addSong(rapSong);
console.log("three");
callback();
}],
function(err, result){
console.log("four");
});