Add Zotero.Translate#removeHandler() and don't let processDocuments interfere with Zotero.Translate instance reuse
This commit is contained in:
parent
800261db26
commit
5b815a4fa2
|
@ -777,6 +777,16 @@ Zotero.Translate.Base.prototype = {
|
||||||
"clearHandlers":function(type) {
|
"clearHandlers":function(type) {
|
||||||
this._handlers[type] = new Array();
|
this._handlers[type] = new Array();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears a single handler for a given function
|
||||||
|
* @param {String} type See {@link Zotero.Translate.Base#setHandler} for valid values
|
||||||
|
* @param {Function} handler Callback function to remove
|
||||||
|
*/
|
||||||
|
"removeHandler":function(type, handler) {
|
||||||
|
var handlerIndex = this._handlers[type].indexOf(handler);
|
||||||
|
if(handlerIndex !== -1) this._handlers[type].splice(handlerIndex, 1);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates that a new async process is running
|
* Indicates that a new async process is running
|
||||||
|
|
|
@ -230,11 +230,13 @@ Zotero.Utilities.Translate.prototype.processDocuments = function(urls, processor
|
||||||
translate.incrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
|
translate.incrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
|
||||||
var hiddenBrowser = Zotero.HTTP.processDocuments(urls, processor, function() {
|
var hiddenBrowser = Zotero.HTTP.processDocuments(urls, processor, function() {
|
||||||
if(done) done();
|
if(done) done();
|
||||||
translate.setHandler("done", function() {
|
var handler = function() {
|
||||||
try {
|
try {
|
||||||
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
|
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
|
||||||
|
translate.removeHandler("done", handler);
|
||||||
} catch(e) {}
|
} catch(e) {}
|
||||||
});
|
};
|
||||||
|
translate.setHandler("done", handler);
|
||||||
translate.decrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
|
translate.decrementAsyncProcesses("Zotero.Utilities.Translate#processDocuments");
|
||||||
}, myException, true, translate.cookieSandbox);
|
}, myException, true, translate.cookieSandbox);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user