Xo#call(method, args).retry(predicate)
This commit is contained in:
parent
749d5e22bb
commit
85d0271b86
@ -37,14 +37,22 @@ export default class Xo extends JsonRpcWebSocketClient {
|
|||||||
return this._user
|
return this._user
|
||||||
}
|
}
|
||||||
|
|
||||||
call (method, args) {
|
call (method, args, i) {
|
||||||
return new Promise(resolve => {
|
if (startsWith(method, 'session.')) {
|
||||||
if (startsWith(method, 'session.')) {
|
return Promise.reject(
|
||||||
throw new XoError('session.*() methods are disabled from this interface')
|
new XoError('session.*() methods are disabled from this interface')
|
||||||
}
|
)
|
||||||
|
}
|
||||||
|
|
||||||
resolve(super.call(method, args))
|
const promise = super.call(method, args)
|
||||||
|
promise.retry = predicate => promise.catch(error => {
|
||||||
|
i = (i || 0) + 1
|
||||||
|
if (predicate(error, i)) {
|
||||||
|
return this.call(method, args, i)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
return promise
|
||||||
}
|
}
|
||||||
|
|
||||||
signIn (credentials) {
|
signIn (credentials) {
|
||||||
|
Loading…
Reference in New Issue
Block a user