Add error and connection failure callbacks to Lighthouse methods
This commit is contained in:
parent
6963d877df
commit
0b58ae6e6e
1 changed files with 8 additions and 4 deletions
|
@ -15,23 +15,27 @@ var lighthouse = {
|
|||
lbry.jsonrpc_call(this.server + this.path, method, params, callback, errorCallback, connectFailedCallback, timeout);
|
||||
},
|
||||
|
||||
search: function(query, callback) {
|
||||
search: function(query, callback, errorCallback, connectFailedCallback, timeout) {
|
||||
let handleSearchFailed = function(tryNum=0) {
|
||||
if (tryNum > lighthouse._max_search_tries) {
|
||||
throw new Error(`Could not connect to Lighthouse server. Last server attempted: ${lighthouse.server}`);
|
||||
if (connectFailedCallback) {
|
||||
connectFailedCallback();
|
||||
} else {
|
||||
throw new Error(`Could not connect to Lighthouse server. Last server attempted: ${lighthouse.server}`);
|
||||
}
|
||||
} else {
|
||||
// Randomly choose one of the other search servers to switch to
|
||||
let otherServers = lighthouse.servers.slice();
|
||||
otherServers.splice(otherServers.indexOf(lighthouse.server), 1);
|
||||
lighthouse.server = otherServers[Math.round(Math.random() * (otherServers.length - 1))];
|
||||
|
||||
lighthouse.call('search', [query], callback, undefined, function() {
|
||||
lighthouse.call('search', [query], callback, errorCallback, function() {
|
||||
handleSearchFailed(tryNum + 1);
|
||||
}, lighthouse._search_timeout);
|
||||
}
|
||||
}
|
||||
|
||||
lighthouse.call('search', [query], callback, undefined, function() { handleSearchFailed() }, lighthouse._search_timeout);
|
||||
lighthouse.call('search', [query], callback, errorCallback, function() { handleSearchFailed() }, lighthouse._search_timeout);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue