首页 > 解决方案 > 如何通过 Promise 传递 FileList

问题描述

我有以下代码。我使用 fileList 变量,它是一个仅包含一个文件的 FileList。然后我通过它

foo(fileList) {
    this.props.bar({ fileList })
        .then((res) => 
            this.props.doSomething({ fileList });
        })
}

然后在另一个文件中

doSomething({ fileList }) {
...
}

我的问题是在输入 bar() 之前 fileList 包含一个文件。然后 .then 文件列表内部似乎是空的,导致 doSomething 没有文件。此外,在 bar 承诺完成后,fileList 再次包含该文件。

这是范围问题吗?我该如何解决?

标签: javascriptreactjses6-promise

解决方案


所以我发现出了什么问题。我想感谢大家的帮助。

这个 foo 被异步调用。因此,fileList 包含一个用于第一次调用 bar() 的文件,但到调用 doSomething() 时,fileList 实际上在最初调用 foo() 的方法中发生了变化。


推荐阅读