首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用edgee:slingshot的多个文件上传urls

使用edgee:slingshot的多个文件上传urls
EN

Stack Overflow用户
提问于 2016-07-03 15:56:35
回答 1查看 203关注 0票数 1
代码语言:javascript
复制
var images = [];
let uploader = new Slingshot.Upload("articles"); 

// file input
let files = document.getElementById("someId").files; 

for (let i = 0; i < files.length; i++) { 
    uploader.send(files[i], function (error, downloadUrl) { 
        if (!error) { 
            //save all download urls in an array 
            images[i] = downloadUrl; 
        } 
    }); 
}
console.log(images); 

当我用下载urls填充上面的图像数组时,它是空的。在send()块之后,任何变量值都会丢失。我想将所有的下载urls存储在一个数组中,那么我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2016-07-12 13:14:51

Slingshot的uploader.send()是一个异步进程。

因此,在我看来,它只是一个classic async task misunderstanding

也就是说,在执行console.log(images)回调之前,会调用console.log(images)

此外,在回调函数中使用i变量会遇到作用域问题。当它执行时,i将有一个不同的值。通常情况下,它已经等于files.length。这意味着所有的回调都将写入相同的数组项images[files.length]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38167887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档