feat(ShardingManager): Allow b-Eval/fetchClientValues on a specific shard when not all are ready (#5222)

Co-authored-by: BennyDiscord <46286597+BennyDiscord@users.noreply.github.com>
This commit is contained in:
Alex
2021-01-24 10:49:15 +00:00
committed by GitHub
parent a33eed71af
commit 001676c7a9

View File

@@ -255,13 +255,14 @@ class ShardingManager extends EventEmitter {
*/
_performOnShards(method, args, shard) {
if (this.shards.size === 0) return Promise.reject(new Error('SHARDING_NO_SHARDS'));
if (this.shards.size !== this.shardList.length) return Promise.reject(new Error('SHARDING_IN_PROCESS'));
if (typeof shard === 'number') {
if (this.shards.has(shard)) return this.shards.get(shard)[method](...args);
return Promise.reject(new Error('SHARDING_SHARD_NOT_FOUND', shard));
}
if (this.shards.size !== this.shardList.length) return Promise.reject(new Error('SHARDING_IN_PROCESS'));
const promises = [];
for (const sh of this.shards.values()) promises.push(sh[method](...args));
return Promise.all(promises);