Skip to content

Commit bc60449

Browse files
author
Robert Kiel
authored
Merge pull request #13 from robertkiel/fix-uncaught-promise-rejection
Fix uncaught promise rejection
2 parents 638f408 + eb72430 commit bc60449

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

src/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -543,16 +543,16 @@ class Libp2p extends EventEmitter {
543543
* @param {PeerId|Multiaddr|string} peer - the peer to close connections to
544544
* @returns {Promise<void>}
545545
*/
546-
hangUp (peer) {
547-
const peerInfo = getPeerInfo(peer, this.peerStore)
546+
async hangUp (peer) {
547+
const { id } = getPeer(peer)
548548

549-
let connections = this.registrar.connections.get(peerInfo.id.toB58String())
549+
const connections = this.connectionManager.connections.get(id.toB58String())
550550

551551
if (!connections) {
552-
return Promise.resolve()
552+
return
553553
}
554554

555-
return Promise.all(
555+
await Promise.all(
556556
connections.map(connection => {
557557
return connection.close()
558558
})

src/peer-routing.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,13 @@ class PeerRouting {
111111

112112
const output = await pipe(
113113
merge(
114-
...this._routers.map(router => [router.findPeer(id, options)])
114+
...this._routers.map(router => (async function* () {
115+
try {
116+
yield [await router.findPeer(id, options)];
117+
} catch (err) {
118+
yield;
119+
}
120+
})())
115121
),
116122
(source) => filter(source, Boolean),
117123
// @ts-ignore findPeer resolves a Promise

test/peer-routing/peer-routing.node.js

+8
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ describe('peer-routing', () => {
106106
.to.eventually.be.rejected()
107107
.and.to.have.property('code', 'ERR_FIND_SELF')
108108
})
109+
110+
it('should handle error', async () => {
111+
const unknownPeers = await peerUtils.createPeerId({ number: 1, fixture: false})
112+
113+
await expect(nodes[0].peerRouting.findPeer(unknownPeers[0]))
114+
.to.eventually.be.rejected()
115+
.and.to.have.property('code', 'NOT_FOUND')
116+
})
109117
})
110118

111119
describe('via delegate router', () => {

0 commit comments

Comments
 (0)