Javascript Dropzone不';不能将多个项目排队

Javascript Dropzone不';不能将多个项目排队,javascript,jquery,promise,dropzone.js,Javascript,Jquery,Promise,Dropzone.js,我试图在使用对话框上载文件之前重命名文件,以获取用户对文件的输入,但当我选择多个项目时,它会给它们提供相同的名称(当选择多个项目时),或者不会对任何内容进行排队,只会对第一个文件进行排队 Dropzone配置: var myDropzone = new Dropzone("div#file_section", {maxFiles: 3, parallelUploads: 1, url: "assets/php/upload.php", ac

我试图在使用对话框上载文件之前重命名文件,以获取用户对文件的输入,但当我选择多个项目时,它会给它们提供相同的名称(当选择多个项目时),或者不会对任何内容进行排队,只会对第一个文件进行排队

Dropzone配置:

var myDropzone = new Dropzone("div#file_section", {maxFiles: 3,
    parallelUploads: 1, url: "assets/php/upload.php",
    accept: function (file,done) {
        bumm(file.name);
        async function bumm(text) {
            await new Promise(function(resolve, reject) {
                showtextinput(text,function (value) {
                    uploadname = value;
                    resolve();
                    done();
                },function () {
                    alert('false');
                    reject(Error("It broke"));
                });
            });
        }
        filecount++;
        console.log("bitti");
    }});
myDropzone.on("sending", function(file, xhr, formData) {
    /* Maybe display some more file information on your page */
    formData.append('newname',uploadname);
    uploadname=null;
});
myDropzone.on("success", function(file, xhr, formData) {
    /* Maybe display some more file information on your page */
    formData = new FormData();
});
Showtextinput函数:

  function showtextinput(message, yesCallback, noCallback) {
    $('#inputlabel').html(message+" isimli dosyanın ne hakkında olduğunu kısaca giriniz..");
    $('#inputmodal').modal('show');

    $('#inputdone').click(function() {
        $('#inputmodal').modal('hide');
        yesCallback($('#textinput').val());
        $('#textinput').val = "";
    });
}

按照您现在的方式,使用
承诺没有任何意义,因为您没有等待它
newpromise
同步执行Promise中的代码,并且
异步函数bumm
不会返回任何内容

我假设您需要一种队列,因此一次只显示一种模式。我建议您引入一个变量来保存各自的最后一个承诺,并用
追加一个新承诺。然后()

然后代替
bumm(file.name)你是这样做的

lastPromise = lastPromise.then(function() { return bumm(file.name); });
这样,对话框将仅在最后一个对话框关闭时打开。当然,
bumm()
函数必须返回承诺:

function bumm(text) {
    return new Promise(function(resolve, reject) {
        // ...
    }
}
function bumm(text) {
    return new Promise(function(resolve, reject) {
        // ...
    }
}