重置承诺/重用承诺

时间:2014-06-04 14:01:12

标签: javascript jquery promise

我一直在询问有关延期的问题,并且在我的情况下遇到了问题。

用户将文件拖到窗口,我的文件drop类解析了它的承诺,然后我的主类就此行动了。

我从我的主班调用我的文件drop class:

this.fileDrop = new lx.FileDrop();
    this.fileDrop.done(function(files){
        console.log(files);
    });

这是我的文件删除类:

(function(){
"use strict";

var FileDrop = function() {

    return this.init();
};

p.dfd = undefined;

p.init = function() {

    this._initEvents();
    return this.dfd.promise();
};

p._initEvents = function() {

    $(window).on('drop', this.onDrop.bind(this)).on('dragover', this.onDragOver);
};

p.onDrop = function(e) {

    e.preventDefault();
    this.dfd.resolve(e.originalEvent.dataTransfer.files);

};

p.onDragOver = function(e) {
    e.preventDefault();
};

lx.FileDrop = FileDrop;
}(window));

在接下来,承诺得到解决。这有效。我的问题出现了多次掉落。用户将一组图像拖动到屏幕上,承诺将与文件一起解析。然后他们拖动另一组,承诺已经解决。我知道一个解决方案是每次在on drop方法中创建一个新的promise,但是我每次如何将它传递回主类?

或者有没有办法'重置'承诺?

0 个答案:

没有答案