priority-web-sdk:uploadFile

时间:2017-07-20 13:39:20

标签: javascript erp

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

uploadFile承诺会解决,但是&lt; 100进度值 - 它仍在上传。所以我需要等到它完成,但在第一个承诺解决后我如何继续更新FileUploadResult

我的示例页面为here

    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) })

        })
    }

2 个答案:

答案 0 :(得分:0)

请勿在此处使用Promise。使用callbacks。 正如文档中所写:

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

答案 1 :(得分:0)

@ simon-barnett,我遇到了同样的问题。除了.then()电话之外,我所做的其他事情都是承诺和uploadFile()声明。

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
  }
}

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

我认为从版本1.5开始就是如此(虽然我现在无法获得版本#)