Skip to content
DocsGuidesReferenceBlog
Install
HomeDocsGuidesReferenceBlog
Install Bun v1.4.0
Reference
Modules/Bun/$/ShellPromise/withResolvers
  • MwithResolvers

Modules

  • Bun
  • bun:bundle
  • bun:ffi
  • bun:jsc
  • bun:sqlite
  • bun:test
  • Globals
  • node:assert
  • node:async_hooks
  • node:buffer
  • node:child_process
  • node:cluster
  • node:crypto
  • node:dgram
  • node:diagnostics_channel
  • node:dns
  • node:dns/promises
  • node:events
  • node:ffi
  • node:fs
  • node:fs/promises
  • node:http
  • node:http2
  • node:https
  • node:inspector
  • node:inspector/promises
  • node:module
  • node:net
  • node:os
  • node:path
  • node:perf_hooks
  • node:punycode
  • node:querystring
  • node:quic
  • node:readline
  • node:readline/promises
  • node:stream
  • node:stream/consumers
  • node:stream/iter
  • node:stream/promises
  • node:stream/web
  • node:string_decoder
  • node:test
  • node:test/reporters
  • node:timers/promises
  • node:tls
  • node:trace_events
  • node:tty
  • node:url
  • node:util
  • node:util/types
  • node:v8
  • node:vm
  • node:wasi
  • node:worker_threads
  • node:zlib
  • node:zlib/iter

method

$.ShellPromise.withResolvers

static withResolvers<T>(): { promise: Promise<T>; reject: (reason?: any) => void; resolve: (value?: T | PromiseLike<T>) => void };

Create a deferred promise with its resolve and reject functions exposed, so code outside the promise can settle it.

const { promise, resolve, reject } = Promise.withResolvers();

setTimeout(() => {
 resolve("Hello world!");
}, 1000);

await promise; // "Hello world!"