Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript for()循环在第一次迭代后停止_Javascript_Node.js_Asynchronous_Async Await_Request - Fatal编程技术网

JavaScript for()循环在第一次迭代后停止

JavaScript for()循环在第一次迭代后停止,javascript,node.js,asynchronous,async-await,request,Javascript,Node.js,Asynchronous,Async Await,Request,开发人员级别-Web开发初学者。熟悉HTML/CSS/JS和NodeJS 程序-我有一个视频URL数组,该程序将遍历该数组,并逐个下载视频 问题-循环在第一次迭代后停止↓ 这是我的密码↓ //外部软件包/////////////////// 常数fs=要求('fs'); var请求=要求(“请求”); var路径=要求(“路径”)//////////////// ///////////////////////////////////////////////// /////////////////

开发人员级别-Web开发初学者。熟悉HTML/CSS/JS和NodeJS

程序-我有一个视频URL数组,该程序将遍历该数组,并逐个下载视频

问题-循环在第一次迭代后停止<强>↓ 这是我的密码↓

//外部软件包///////////////////
常数fs=要求('fs');
var请求=要求(“请求”);
var路径=要求(“路径”)////////////////
/////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
var downloadFile=(uri,文件名)=>新承诺((解析,拒绝)=>{
request.head(uri,(err,res,body)=>{
log('content-type:',res.headers['content-type']);
fileSize=parseInt(res.headers['content-length'],10);
log('content-length:',文件大小);
如果(文件大小<125000000){
console.log('\n','Downloading File');
请求(uri)
.on('error',error=>{
资源状态(502).发送(错误消息)
拒绝(错误)
})
.pipe(fs.createWriteStream(`${filename}.mp4`))
.on('完成',决议);
}否则{
console.log('文件大小错误')
拒绝
}
});
})
//////////////
/////////////////////////////////////////////////////////////////////////////
saveVids=async()=>{
sources=fs.readFileSync(“local-FireStore-Cache-PH.txt”);
sources=JSON.parse(sources);
log(`Array length:${sources.length}]`)
对于(i=0;i
返回以下输出-

数组长度:27
当前索引:
内容类型:视频/mp4
内容长度:160860560
文件大小错误

并在第一次迭代后停止

这是完整的代码。当点击
拒绝
时,代码停止运行是正常行为。如果需要继续循环,则需要处理发生错误时的操作。e、 g.打印错误,而不打印其他内容


常数fs=要求('fs');
var请求=要求(“请求”);
var路径=要求(“路径”);
var downloadFile=(uri,文件名)=>新承诺((解析,拒绝)=>{
request.head(uri,(err,res,body)=>{
log('content-type:',res.headers['content-type']);
fileSize=parseInt(res.headers['content-length'],10);
log('content-length:',文件大小);
如果(文件大小<125000000){
console.log('\n','Downloading File');
请求(uri)
.on('error',error=>{
资源状态(502).发送(错误消息)
拒绝(错误)
})
.pipe(fs.createWriteStream(`${filename}.mp4`))
.on('完成',决议);
}否则{
//console.log('文件大小错误')
拒绝(“文件大小错误”);
}
});
})
//////////////
/////////////////////////////////////////////////////////////////////////////
saveVids=async()=>{
sources=fs.readFileSync(“local-FireStore-Cache-PH.txt”);
sources=JSON.parse(sources);
log(`Array length:${sources.length}]`)
对于(i=0;i
为什么不试试“中断”或“返回错误”。我会给你一个例子,让你有一些想法,请看这个,并尝试添加到您的代码

试试看

功能测试(){ 设testArray=[1,2,3,4,5,6,7,8,9,10] 对于(变量i=0;i0;i++){ console.log(testArray[i]) break;//或返回false; //否则,请使用如下条件->注释掉以下代码并参见 /*如果(测试阵列[i]==5){ 打破 } */ } }
同步读取文件时,请确保将其转换为数组。

现在您可以遍历sourcesArray


注意:您的文本文件每行必须包含链接。

文件大小错误不意味着有错误,因此它停止了吗?如果要继续程序,请使用try/catch将
wait downloadFile
方法包装为try/catchrunning@VLAZ没有朋友,这是我的
if else
statement@AvishaManik好啊如果您确实进入了记录该消息的
else
,那么您的承诺将永远不会得到解决,因为您只有
拒绝而不调用它-它应该是
reject()。此外,如果等待的承诺被拒绝,这与抛出异常一样——执行将终止。@AvishaManik下面有什么解决方案可以解决您的问题吗?如果是,请接受答案。如果没有,请为我们提供更多信息以帮助您。
<button onclick="test()">Try it</button>
<p id="demo"></p>

    function test(){
    let testArray = [1,2,3,4,5,6,7,8,9,10] 
  
  for (var i = 0; i < testArray.length > 0; i++) {
    
        console.log(testArray[i])
    
        break; //or return false;
      
      //Otherwise use a condition as follwing -> comment out following code and see
      
     /*  if (testArray[i] === 5){
                  break;
      } */
  }
}
sources = fs.readFileSync("local-FireStore-Cache-PH.txt",'utf-8');
sourcesArray = sources.split('\n');