You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-26 17:03:12 +03:00
replace another couple of deferreds
This commit is contained in:
123
src/client.js
123
src/client.js
@@ -1872,33 +1872,33 @@ MatrixClient.prototype.joinRoom = function(roomIdOrAlias, opts, callback) {
|
|||||||
|
|
||||||
const reqOpts = {qsStringifyOptions: {arrayFormat: 'repeat'}};
|
const reqOpts = {qsStringifyOptions: {arrayFormat: 'repeat'}};
|
||||||
|
|
||||||
const defer = Promise.defer();
|
|
||||||
|
|
||||||
const self = this;
|
const self = this;
|
||||||
sign_promise.then(function(signed_invite_object) {
|
const prom = new Promise((resolve, reject) => {
|
||||||
const data = {};
|
sign_promise.then(function(signed_invite_object) {
|
||||||
if (signed_invite_object) {
|
const data = {};
|
||||||
data.third_party_signed = signed_invite_object;
|
if (signed_invite_object) {
|
||||||
}
|
data.third_party_signed = signed_invite_object;
|
||||||
|
}
|
||||||
|
|
||||||
const path = utils.encodeUri("/join/$roomid", { $roomid: roomIdOrAlias});
|
const path = utils.encodeUri("/join/$roomid", { $roomid: roomIdOrAlias});
|
||||||
return self._http.authedRequest(
|
return self._http.authedRequest(
|
||||||
undefined, "POST", path, queryString, data, reqOpts);
|
undefined, "POST", path, queryString, data, reqOpts);
|
||||||
}).then(function(res) {
|
}).then(function(res) {
|
||||||
const roomId = res.room_id;
|
const roomId = res.room_id;
|
||||||
const syncApi = new SyncApi(self, self._clientOpts);
|
const syncApi = new SyncApi(self, self._clientOpts);
|
||||||
const room = syncApi.createRoom(roomId);
|
const room = syncApi.createRoom(roomId);
|
||||||
if (opts.syncRoom) {
|
if (opts.syncRoom) {
|
||||||
// v2 will do this for us
|
// v2 will do this for us
|
||||||
// return syncApi.syncRoom(room);
|
// return syncApi.syncRoom(room);
|
||||||
}
|
}
|
||||||
return Promise.resolve(room);
|
return Promise.resolve(room);
|
||||||
}).done(function(room) {
|
}).done(function(room) {
|
||||||
_resolve(callback, defer, room);
|
_resolve(callback, resolve, room);
|
||||||
}, function(err) {
|
}, function(err) {
|
||||||
_reject(callback, defer, err);
|
_reject(callback, reject, err);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
return defer.promise;
|
return prom;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3214,42 +3214,45 @@ MatrixClient.prototype.scrollback = function(room, limit, callback) {
|
|||||||
// reduce the required number of events appropriately
|
// reduce the required number of events appropriately
|
||||||
limit = limit - numAdded;
|
limit = limit - numAdded;
|
||||||
|
|
||||||
const defer = Promise.defer();
|
const self = this;
|
||||||
|
const prom = new Promise((resolve, reject) => {
|
||||||
|
// wait for a time before doing this request
|
||||||
|
// (which may be 0 in order not to special case the code paths)
|
||||||
|
sleep(timeToWaitMs).then(function() {
|
||||||
|
return self._createMessagesRequest(
|
||||||
|
room.roomId,
|
||||||
|
room.oldState.paginationToken,
|
||||||
|
limit,
|
||||||
|
'b');
|
||||||
|
}).done(function(res) {
|
||||||
|
const matrixEvents = utils.map(res.chunk, _PojoToMatrixEventMapper(self));
|
||||||
|
if (res.state) {
|
||||||
|
const stateEvents = utils.map(res.state, _PojoToMatrixEventMapper(self));
|
||||||
|
room.currentState.setUnknownStateEvents(stateEvents);
|
||||||
|
}
|
||||||
|
room.addEventsToTimeline(matrixEvents, true, room.getLiveTimeline());
|
||||||
|
room.oldState.paginationToken = res.end;
|
||||||
|
if (res.chunk.length === 0) {
|
||||||
|
room.oldState.paginationToken = null;
|
||||||
|
}
|
||||||
|
self.store.storeEvents(room, matrixEvents, res.end, true);
|
||||||
|
self._ongoingScrollbacks[room.roomId] = null;
|
||||||
|
_resolve(callback, resolve, room);
|
||||||
|
}, function(err) {
|
||||||
|
self._ongoingScrollbacks[room.roomId] = {
|
||||||
|
errorTs: Date.now(),
|
||||||
|
};
|
||||||
|
_reject(callback, reject, err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
info = {
|
info = {
|
||||||
promise: defer.promise,
|
promise: prom,
|
||||||
errorTs: null,
|
errorTs: null,
|
||||||
};
|
};
|
||||||
const self = this;
|
|
||||||
// wait for a time before doing this request
|
|
||||||
// (which may be 0 in order not to special case the code paths)
|
|
||||||
sleep(timeToWaitMs).then(function() {
|
|
||||||
return self._createMessagesRequest(
|
|
||||||
room.roomId,
|
|
||||||
room.oldState.paginationToken,
|
|
||||||
limit,
|
|
||||||
'b');
|
|
||||||
}).done(function(res) {
|
|
||||||
const matrixEvents = utils.map(res.chunk, _PojoToMatrixEventMapper(self));
|
|
||||||
if (res.state) {
|
|
||||||
const stateEvents = utils.map(res.state, _PojoToMatrixEventMapper(self));
|
|
||||||
room.currentState.setUnknownStateEvents(stateEvents);
|
|
||||||
}
|
|
||||||
room.addEventsToTimeline(matrixEvents, true, room.getLiveTimeline());
|
|
||||||
room.oldState.paginationToken = res.end;
|
|
||||||
if (res.chunk.length === 0) {
|
|
||||||
room.oldState.paginationToken = null;
|
|
||||||
}
|
|
||||||
self.store.storeEvents(room, matrixEvents, res.end, true);
|
|
||||||
self._ongoingScrollbacks[room.roomId] = null;
|
|
||||||
_resolve(callback, defer, room);
|
|
||||||
}, function(err) {
|
|
||||||
self._ongoingScrollbacks[room.roomId] = {
|
|
||||||
errorTs: Date.now(),
|
|
||||||
};
|
|
||||||
_reject(callback, defer, err);
|
|
||||||
});
|
|
||||||
this._ongoingScrollbacks[room.roomId] = info;
|
this._ongoingScrollbacks[room.roomId] = info;
|
||||||
return defer.promise;
|
return prom;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4862,18 +4865,18 @@ function checkTurnServers(client) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _reject(callback, defer, err) {
|
function _reject(callback, reject, err) {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(err);
|
callback(err);
|
||||||
}
|
}
|
||||||
defer.reject(err);
|
reject(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _resolve(callback, defer, res) {
|
function _resolve(callback, resolve, res) {
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(null, res);
|
callback(null, res);
|
||||||
}
|
}
|
||||||
defer.resolve(res);
|
resolve(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _PojoToMatrixEventMapper(client) {
|
function _PojoToMatrixEventMapper(client) {
|
||||||
|
|||||||
Reference in New Issue
Block a user