首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >priority-web-sdk: uploadFile

priority-web-sdk: uploadFile
EN

Stack Overflow用户
提问于 2017-07-20 21:39:20
回答 2查看 65关注 0票数 1

我正在尝试使用uploadFile方法从<input type="file"> HTML标记上传文件。

uploadFile promise解决了,但进度值小于100-它仍在上传中。所以我需要等到它完成,但是在第一个promise解决之后,我该如何继续更新FileUploadResult呢?

我的示例页面是here

代码语言:javascript
复制
    function UploadFile(curform, file) {
        return new Promise((resolve, reject) => {                
            var FileUploadResult;
            var check = function () {
                if (FileUploadResult.isLast) {
                    resolve(FileUploadResult)
                } else {
                    console.log(FileUploadResult);
                    setTimeout(check, 1000);
                }
            };           

            curform.uploadFile(file).then(Result => {
                FileUploadResult = Result
                check();
            }).catch(er => { reject(er) })

        })
    }
EN

回答 2

Stack Overflow用户

发布于 2017-08-13 23:01:21

不要在这里使用Promise。使用callbacks。正如文档中所写的:

uploadFile(file, [onSuccess], [onError]) ⇒ Promise

票数 0
EN

Stack Overflow用户

发布于 2018-05-30 17:27:29

@simon-barnett,我遇到了同样的问题。除了uploadFile()调用之外,我正在做的其他事情都是使用promises和.then()语句。

代码语言:javascript
复制
curForm.uploadFile(file,uploadSuccess, uploadError);

function uploadSuccess(r) {
  if (r.isLast) {
    curForm.newRow()
            .then(() => curForm.fieldUpdate("EXTFILENAME", r.file))
            .then(() => curForm.saveRow(1)) //Save and Close curForm
  }
}

我认为发生的情况是,上传完成后,即使progress达到100,.isLast布尔值也没有正确更新。回调方法不会因此而挂起,它返回promise并正确设置.isLast布尔值。

我相信这是从1.5版开始的(尽管我现在在获取版本#时遇到了麻烦)。

更新:根据文档,从2.0.1版开始,删除了.isLast属性。从2.1.0版本开始,我们现在有了FileProgressFileResult。这应该允许将.uploadFile作为promise调用,而不是通过回调,尽管我自己还没有测试过这一点。

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

https://stackoverflow.com/questions/45216456

复制
相关文章

相似问题

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