我一直在询问有关延期的问题,并且在我的情况下遇到了问题。
用户将文件拖到窗口,我的文件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,但是我每次如何将它传递回主类?
或者有没有办法'重置'承诺?