最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

为什么我的for循环,只有通过一次去时,我打电话里面的功能?

IT培训 admin 6浏览 0评论

为什么我的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循环。

发布评论

评论列表 (0)

  1. 暂无评论