GramJs: Properly reject promise if result is unparsable

This commit is contained in:
Alexander Zinchuk 2021-11-05 21:57:17 +03:00
parent 3d8bb54398
commit cf2db92c61

View File

@ -35,7 +35,6 @@ const { LogOut } = require('../tl').requests.auth;
const { RPCMessageToError } = require('../errors'); const { RPCMessageToError } = require('../errors');
const { TypeNotFoundError } = require('../errors/Common'); const { TypeNotFoundError } = require('../errors/Common');
/** /**
* MTProto Mobile Protocol sender * MTProto Mobile Protocol sender
* (https://core.telegram.org/mtproto/description) * (https://core.telegram.org/mtproto/description)
@ -82,7 +81,6 @@ class MTProtoSender {
this._isMainSender = args.isMainSender; this._isMainSender = args.isMainSender;
this._onConnectionBreak = args.onConnectionBreak; this._onConnectionBreak = args.onConnectionBreak;
/** /**
* whether we disconnected ourself or telegram did it. * whether we disconnected ourself or telegram did it.
*/ */
@ -557,9 +555,14 @@ class MTProtoSender {
this._send_queue.append(new RequestState(new MsgsAck({ msgIds: [state.msgId] }))); this._send_queue.append(new RequestState(new MsgsAck({ msgIds: [state.msgId] })));
state.reject(error); state.reject(error);
} else { } else {
const reader = new BinaryReader(result.body); try {
const read = state.request.readResult(reader); const reader = new BinaryReader(result.body);
state.resolve(read); const read = state.request.readResult(reader);
state.resolve(read);
} catch (err) {
state.reject(err);
throw err;
}
} }
} }