Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 承诺。所有的图片列表_Javascript_Promise - Fatal编程技术网

Javascript 承诺。所有的图片列表

Javascript 承诺。所有的图片列表,javascript,promise,Javascript,Promise,我有以下代码,它从imagesList中的URL列表中获取图像,然后将图像添加到Dropzone框中。我的问题是,图像在Dropzone框中以相当随机的顺序出现,而不是在imagesList中的顺序 我知道如果我使用Promise.All,这可能是可以修复的,但我不知道如何在Promise.All中编写以下代码。我试了很长时间,但都失败了 请帮忙 var imagesList = ["/img1.jpg", "/img2.jpg", "/img3.jpg"]; for (var i =

我有以下代码,它从imagesList中的URL列表中获取图像,然后将图像添加到Dropzone框中。我的问题是,图像在Dropzone框中以相当随机的顺序出现,而不是在imagesList中的顺序

我知道如果我使用Promise.All,这可能是可以修复的,但我不知道如何在Promise.All中编写以下代码。我试了很长时间,但都失败了

请帮忙

  var imagesList = ["/img1.jpg", "/img2.jpg", "/img3.jpg"];

  for (var i = 0; i < imagesList.length; i++) {
              let name = imagesList[i];
              name = name.substring(name.lastIndexOf('/') + 1);

              fetch(imagesList[i])
                    .then(res => res.blob())
                    .then(blob => {
                    let file = new File([blob], name, blob);
                    myDropzone1.addFile(file);
              });
   }
var-imagesList=[“/img1.jpg”、“/img2.jpg”、“/img3.jpg”];
对于(var i=0;ires.blob())
.然后(blob=>{
let file=新文件([blob],名称,blob);
myDropzone1.addFile(文件);
});
}

以下是一个示例,说明了如何做到这一点

基本上,对于
imagesList
中的每个url,您都会生成一个
承诺。
您将所有这些承诺放在
Promise.all
中,当加载所有图像时,它将返回另一个承诺,并将按照传入的顺序进行迭代

var imagesList = ["/img1.jpg", "/img2.jpg", "/img3.jpg"];
Promise.all(imagesList.map(url => {
          const name = url.substring(name.lastIndexOf('/') + 1);
          return fetch(url)
                .then(res => res.blob())
                .then(blob => new File([blob], name, blob)
          });
})).then(results => results.forEach(file => myDropzone1.addFile(file)));
如果您需要澄清,请检查并随时提问


希望能有所帮助;)

我希望这会有所帮助

函数getFile(项){
返回新承诺((解决、拒绝)=>{
让name=item.substring(item.lastIndexOf('/')+1);
取回(物品)
.then(res=>res.blob())
.然后(blob=>{
let file=新文件([blob],名称,blob);
解决(文件);
});
})
}
让imagesList=[“/img1.jpg”、“/img2.jpg”、“/img3.jpg”];
让promises=imagesList.map(item=>getFile(item));
允诺
.所有(承诺)
。然后(文件=>{
files.forEach(file=>myDropzone1.addFile(file));
})