我有一个异步等待功能,该功能正在循环中处理项目。在完成之前,如何检查阵列中的每个项目!日志到控制台?因此,每次链接错误都会出现时,它都应在与之关联的索引号之后记录错误。例如:
0
错误此处https://test123.com/ergaergrhaerha0
1
2
2
3
错误此处https://test123.com/ergaergrhaerha333
...
完成!
processArray(ftJsonBySeqAssets);
async function processArray(arr) {
for (i in arr) {
console.log(i)
await https.get(arr[i].image_link, async (res) => {
await console.log(res.statusCode, arr[i].image_link)
if (res.statusCode === 404) {
console.log('ERROR HERE', arr[i].image_link)
audience.error.image_link.push(arr[i].image_link)
audience.error.count++
}
});
await https.get(arr[i].link, async (res) => {
await console.log(res.statusCode, arr[i].link)
if (res.statusCode === 404) {
console.log('ERROR HERE', arr[i].link)
audience.error.link.push(arr[i].link)
audience.error.count++
}
});
}
console.log('done!')
}
日志:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
done!
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
ERROR HERE https://test123.com/ergaergrhaerha1
看上去好像 https.req
没有返回诺言,因此您必须自己构造一个,然后等待:
const res = await new Promise(resolve => https.get(arr[i].link, resolve));
if (res.statusCode === 404) {
//...
}
//...