【发布时间】:2019-01-28 18:06:10
【问题描述】:
[在此处输入图像描述][1]我遇到了异步/等待问题。 在控制台日志 1、控制台日志 2 和控制台日志 3 感谢更多
const getAnimEpisodesProm = async (URL) => {
return new Promise(async(resolve, reject) => {
const html = await http.loadHtml(URL);
const $ = cheerio.load(html.data);
const animEpisodes = [];
$("ul[id=episode_related]").find("a").each(async (_, element) => {
const Url = BUrl + $(element).attr("href").trim();
episodeId = $(element).find(".name").text().split(" ")[2];
await getEpisodeX(Url,episodeId).then(val => {
animEpisodes.push(val);
console.log(animEpisodes.length)
})
})
console.log(animEpisodes.length, "here")
resolve(animEpisodes);
});
}
代码输出
0 'here'
[]
1
2
3
4
5
【问题讨论】:
-
尝试
console.log('one:',episodeId),console.log('two:',episodeId),console.log('three:',episodes)并首先查看“三个”日志。您的问题在question 中得到了最好的解释 -
关于您的最新编辑,请避免使用
Promiseconstructor antipattern!
标签: javascript async-await es6-promise