为什么我的for循环,只有通过一次去时,我打电话里面的功能?
我的视频列表,从API,它的网址缩略FO的名单,我想每个视频的缩略图结合GIF。当我依次通过视频,并且不会生成它通过5倍的预期GIF文件,但如果我包括应生成的GIF只通过一次去,没有任何错误的功能。我不知道发生了什么事
我如何使用Node.js,discord.js,得到的像素和GIF编码器模块生成缩略图。
for(i=0;i<5;i++){
generateThumbnail(data[i].video.video_id,data[i].video.thumbs,function(){
var tags = '';
for(t=0;t<data[i].video.tags.length;t++){
tags = tags + data[i].video.tags[t].tag_name+', ';
}
fields = [
{name:data[i].video.title,
value:value},
{name:'Tags',
value:tags}
]
msg.channel.send({embed: {
color: 3447003,
thumbnail: {
"url": ""
},
fields: fields,
}});
});
}
function generateThumbnail(id,images,fn){
var pics = [];
console.log(id)
var file = require('fs').createWriteStream(id+'.gif');
var gif = new GifEncoder(images[0].width, images[0].height);
gif.pipe(file);
gif.setQuality(20);
gif.setDelay(1000);
gif.setRepeat(0)
gif.writeHeader();
for(i=0;i<images.length;i++){
pics.push(images[i].src)
}
console.log(pics)
addToGif(pics,gif);
fn()
}
var addToGif = function(images,gif, counter = 0) {
getPixels(images[counter], function(err, pixels) {
gif.addFrame(pixels.data);
gif.read();
if (counter === images.length - 1) {
gif.finish();
} else {
addToGif(images,gif, ++counter);
}
})
}
如果我不使用生成缩略图功能也经过5次如预期,一切工作正常,但如果我使用它,它经历只有一次,只生成1个GIF
回答如下:使用VAR来声明瓦尔。即,对于(VAR I = 0 ....如果你不用var关键字声明增值经销商,他们在全球范围内,......和你正在使用的函数内的另一个我无功而现在却是相同的变种从外for循环。
为什么我的for循环,只有通过一次去时,我打电话里面的功能?
我的视频列表,从API,它的网址缩略FO的名单,我想每个视频的缩略图结合GIF。当我依次通过视频,并且不会生成它通过5倍的预期GIF文件,但如果我包括应生成的GIF只通过一次去,没有任何错误的功能。我不知道发生了什么事
我如何使用Node.js,discord.js,得到的像素和GIF编码器模块生成缩略图。
for(i=0;i<5;i++){
generateThumbnail(data[i].video.video_id,data[i].video.thumbs,function(){
var tags = '';
for(t=0;t<data[i].video.tags.length;t++){
tags = tags + data[i].video.tags[t].tag_name+', ';
}
fields = [
{name:data[i].video.title,
value:value},
{name:'Tags',
value:tags}
]
msg.channel.send({embed: {
color: 3447003,
thumbnail: {
"url": ""
},
fields: fields,
}});
});
}
function generateThumbnail(id,images,fn){
var pics = [];
console.log(id)
var file = require('fs').createWriteStream(id+'.gif');
var gif = new GifEncoder(images[0].width, images[0].height);
gif.pipe(file);
gif.setQuality(20);
gif.setDelay(1000);
gif.setRepeat(0)
gif.writeHeader();
for(i=0;i<images.length;i++){
pics.push(images[i].src)
}
console.log(pics)
addToGif(pics,gif);
fn()
}
var addToGif = function(images,gif, counter = 0) {
getPixels(images[counter], function(err, pixels) {
gif.addFrame(pixels.data);
gif.read();
if (counter === images.length - 1) {
gif.finish();
} else {
addToGif(images,gif, ++counter);
}
})
}
如果我不使用生成缩略图功能也经过5次如预期,一切工作正常,但如果我使用它,它经历只有一次,只生成1个GIF
回答如下:使用VAR来声明瓦尔。即,对于(VAR I = 0 ....如果你不用var关键字声明增值经销商,他们在全球范围内,......和你正在使用的函数内的另一个我无功而现在却是相同的变种从外for循环。