Skip to main content

exactHeroRunoutVulnerabilityAsync

Non-blocking version of exactHeroRunoutVulnerability — same p(nuts) / p(dominated) enumeration with optional cancellation.

exactHeroRunoutVulnerabilityAsync(heroHoleCards: CardInput, boardCards: CardInput, knownDead?: CardInput, options?: AsyncOptions): Promise<HeroRunoutVulnerabilityResult>

See Packed card input and AsyncOptions.

Import

const poker = require('poker-calculations');

ESM (Node):

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const poker = require('poker-calculations');

When to use

Same as the sync export, but you need a Promise and optional AbortSignal so long enumerations do not block the Node event loop.

How to use

const poker = require('poker-calculations');

const { pNuts, pDominated, runoutCount } = await poker.exactHeroRunoutVulnerabilityAsync(
['Ah', 'Kh'],
['Qh', 'Jh', '2c'],
);

console.log({ pNuts, pDominated, runoutCount });

Pass AsyncOptions as the fourth argument to cancel mid-enumeration.

Return type

HeroRunoutVulnerabilityResult — same shape as sync.

See also

exactHeroRunoutVulnerability · AsyncOptions · HeroRunoutVulnerabilityResult