v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::Promise Class Reference

#include <v8-promise.h>

Inheritance diagram for v8::Promise:
Collaboration diagram for v8::Promise:

Classes

class  Resolver
 

Public Types

enum  PromiseState { kPending , kFulfilled , kRejected }
 

Public Member Functions

V8_WARN_UNUSED_RESULT MaybeLocal< PromiseCatch (Local< Context > context, Local< Function > handler)
 
V8_WARN_UNUSED_RESULT MaybeLocal< PromiseThen (Local< Context > context, Local< Function > handler)
 
V8_WARN_UNUSED_RESULT MaybeLocal< PromiseThen (Local< Context > context, Local< Function > on_fulfilled, Local< Function > on_rejected)
 
bool HasHandler () const
 
Local< ValueResult ()
 
PromiseState State ()
 
void MarkAsHandled ()
 
void MarkAsSilent ()
 
- Public Member Functions inherited from v8::Object
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value, MaybeLocal< Object > receiver)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, uint32_t index, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty (Local< Context > context, Local< Name > key, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty (Local< Context > context, uint32_t index, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > DefineOwnProperty (Local< Context > context, Local< Name > key, Local< Value > value, PropertyAttribute attributes=None)
 
V8_WARN_UNUSED_RESULT Maybe< bool > DefineProperty (Local< Context > context, Local< Name > key, PropertyDescriptor &descriptor)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, Local< Value > key, MaybeLocal< Object > receiver)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetPropertyAttributes (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetOwnPropertyDescriptor (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Has (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Delete (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Has (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Delete (Local< Context > context, uint32_t index)
 
void SetAccessorProperty (Local< Name > name, Local< Function > getter, Local< Function > setter=Local< Function >(), PropertyAttribute attributes=None)
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetNativeDataProperty (Local< Context > context, Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), PropertyAttribute attributes=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetLazyDataProperty (Local< Context > context, Local< Name > name, AccessorNameGetterCallback getter, Local< Value > data=Local< Value >(), PropertyAttribute attributes=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
Maybe< bool > HasPrivate (Local< Context > context, Local< Private > key)
 
Maybe< bool > SetPrivate (Local< Context > context, Local< Private > key, Local< Value > value)
 
Maybe< bool > DeletePrivate (Local< Context > context, Local< Private > key)
 
MaybeLocal< ValueGetPrivate (Local< Context > context, Local< Private > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetPropertyNames (Local< Context > context)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetPropertyNames (Local< Context > context, KeyCollectionMode mode, PropertyFilter property_filter, IndexFilter index_filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context, PropertyFilter filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
 V8_DEPRECATE_SOON ("V8 will stop providing access to hidden prototype (i.e. " "JSGlobalObject). Use GetPrototypeV2() instead. " "See http://crbug.com/333672197.") Local< Value > GetPrototype()
 
Local< ValueGetPrototypeV2 ()
 
 V8_DEPRECATE_SOON ("V8 will stop providing access to hidden prototype (i.e. " "JSGlobalObject). Use SetPrototypeV2() instead. " "See http://crbug.com/333672197.") V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototype(Local< Context > context
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototypeV2 (Local< Context > context, Local< Value > prototype)
 
Local< ObjectFindInstanceInPrototypeChain (Local< FunctionTemplate > tmpl)
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringObjectProtoToString (Local< Context > context)
 
Local< StringGetConstructorName ()
 
Maybe< bool > SetIntegrityLevel (Local< Context > context, IntegrityLevel level)
 
int InternalFieldCount () const
 
V8_INLINE Local< DataGetInternalField (int index)
 
void SetInternalField (int index, Local< Data > data)
 
V8_INLINE void * GetAlignedPointerFromInternalField (int index)
 
V8_INLINE void * GetAlignedPointerFromInternalField (v8::Isolate *isolate, int index)
 
void SetAlignedPointerInInternalField (int index, void *value)
 
void SetAlignedPointerInInternalFields (int argc, int indices[], void *values[])
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasOwnProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasOwnProperty (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealNamedProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealIndexedProperty (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealNamedCallbackProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetRealNamedPropertyInPrototypeChain (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetRealNamedPropertyAttributesInPrototypeChain (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetRealNamedProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetRealNamedPropertyAttributes (Local< Context > context, Local< Name > key)
 
bool HasNamedLookupInterceptor () const
 
bool HasIndexedLookupInterceptor () const
 
int GetIdentityHash ()
 
Local< ObjectClone (v8::Isolate *isolate)
 
Local< ObjectClone ()
 
MaybeLocal< ContextGetCreationContext (v8::Isolate *isolate)
 
MaybeLocal< ContextGetCreationContext ()
 
Local< ContextGetCreationContextChecked (v8::Isolate *isolate)
 
Local< ContextGetCreationContextChecked ()
 
void * GetAlignedPointerFromEmbedderDataInCreationContext (v8::Isolate *isolate, int index)
 
void * GetAlignedPointerFromEmbedderDataInCreationContext (int index)
 
bool IsCallable () const
 
bool IsConstructor () const
 
bool IsApiWrapper () const
 
bool IsUndetectable () const
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueCallAsFunction (Local< Context > context, Local< Value > recv, int argc, Local< Value > argv[])
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueCallAsConstructor (Local< Context > context, int argc, Local< Value > argv[])
 
IsolateGetIsolate ()
 
MaybeLocal< ArrayPreviewEntries (bool *is_key_value)
 
bool IsCodeLike (Isolate *isolate) const
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable)
 
- Public Member Functions inherited from v8::Value
V8_INLINE bool IsUndefined () const
 
V8_INLINE bool IsNull () const
 
V8_INLINE bool IsNullOrUndefined () const
 
V8_INLINE bool IsTrue () const
 
V8_INLINE bool IsFalse () const
 
bool IsName () const
 
V8_INLINE bool IsString () const
 
bool IsSymbol () const
 
bool IsFunction () const
 
bool IsArray () const
 
bool IsObject () const
 
bool IsBigInt () const
 
bool IsBoolean () const
 
bool IsNumber () const
 
bool IsExternal () const
 
bool IsInt32 () const
 
bool IsUint32 () const
 
bool IsDate () const
 
bool IsArgumentsObject () const
 
bool IsBigIntObject () const
 
bool IsBooleanObject () const
 
bool IsNumberObject () const
 
bool IsStringObject () const
 
bool IsSymbolObject () const
 
bool IsNativeError () const
 
bool IsRegExp () const
 
bool IsAsyncFunction () const
 
bool IsGeneratorFunction () const
 
bool IsGeneratorObject () const
 
bool IsPromise () const
 
bool IsMap () const
 
bool IsSet () const
 
bool IsMapIterator () const
 
bool IsSetIterator () const
 
bool IsWeakMap () const
 
bool IsWeakSet () const
 
bool IsWeakRef () const
 
bool IsArrayBuffer () const
 
bool IsArrayBufferView () const
 
bool IsTypedArray () const
 
bool IsUint8Array () const
 
bool IsUint8ClampedArray () const
 
bool IsInt8Array () const
 
bool IsUint16Array () const
 
bool IsInt16Array () const
 
bool IsUint32Array () const
 
bool IsInt32Array () const
 
bool IsFloat16Array () const
 
bool IsFloat32Array () const
 
bool IsFloat64Array () const
 
bool IsBigInt64Array () const
 
bool IsBigUint64Array () const
 
bool IsDataView () const
 
bool IsSharedArrayBuffer () const
 
bool IsProxy () const
 
bool IsWasmMemoryObject () const
 
bool IsWasmMemoryMapDescriptor () const
 
bool IsWasmModuleObject () const
 
bool IsWasmNull () const
 
bool IsModuleNamespaceObject () const
 
bool IsPrimitive () const
 
V8_WARN_UNUSED_RESULT MaybeLocal< PrimitiveToPrimitive (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< NumericToNumeric (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< BigIntToBigInt (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< NumberToNumber (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringToString (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringToDetailString (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< ObjectToObject (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< IntegerToInteger (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Uint32ToUint32 (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Int32ToInt32 (Local< Context > context) const
 
Local< BooleanToBoolean (Isolate *isolate) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Uint32ToArrayIndex (Local< Context > context) const
 
bool BooleanValue (Isolate *isolate) const
 
V8_WARN_UNUSED_RESULT Maybe< double > NumberValue (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< int64_t > IntegerValue (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< uint32_t > Uint32Value (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< int32_t > Int32Value (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< bool > Equals (Local< Context > context, Local< Value > that) const
 
bool StrictEquals (Local< Value > that) const
 
bool SameValue (Local< Value > that) const
 
Local< StringTypeOf (Isolate *)
 
Maybe< bool > InstanceOf (Local< Context > context, Local< Object > object)
 
uint32_t GetHash ()
 
template<>
V8_INLINE ValueCast (Data *value)
 
- Public Member Functions inherited from v8::Data
bool IsValue () const
 
bool IsModule () const
 
bool IsModuleRequest () const
 
bool IsFixedArray () const
 
bool IsPrivate () const
 
bool IsObjectTemplate () const
 
bool IsFunctionTemplate () const
 
bool IsContext () const
 

Static Public Member Functions

static V8_INLINE PromiseCast (Value *value)
 
- Static Public Member Functions inherited from v8::Object
static V8_INLINE int InternalFieldCount (const PersistentBase< Object > &object)
 
static V8_INLINE int InternalFieldCount (const BasicTracedReference< Object > &object)
 
static V8_INLINE void * GetAlignedPointerFromInternalField (const PersistentBase< Object > &object, int index)
 
static V8_INLINE void * GetAlignedPointerFromInternalField (const BasicTracedReference< Object > &object, int index)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE MaybeLocal< ContextGetCreationContext (v8::Isolate *isolate, const PersistentBase< Object > &object)
 
static V8_INLINE MaybeLocal< ContextGetCreationContext (const PersistentBase< Object > &object)
 
static V8_INLINE IsolateGetIsolate (const TracedReference< Object > &handle)
 
static Local< ObjectNew (Isolate *isolate)
 
static Local< ObjectNew (Isolate *isolate, Local< Value > prototype_or_null, Local< Name > *names, Local< Value > *values, size_t length)
 
static V8_INLINE ObjectCast (Value *obj)
 
- Static Public Member Functions inherited from v8::Value
template<class T >
static V8_INLINE ValueCast (T *value)
 

Static Public Attributes

static constexpr int kEmbedderFieldCount = V8_PROMISE_INTERNAL_FIELD_COUNT
 

Private Member Functions

 Promise ()
 

Static Private Member Functions

static void CheckCast (Value *obj)
 

Additional Inherited Members

- Public Attributes inherited from v8::Object
Local< Valueprototype
 

Detailed Description

An instance of the built-in Promise constructor (ES6 draft).

Definition at line 24 of file v8-promise.h.

Member Enumeration Documentation

◆ PromiseState

State of the promise. Each value corresponds to one of the possible values of the [[PromiseState]] field.

Enumerator
kPending 
kFulfilled 
kRejected 

Definition at line 30 of file v8-promise.h.

Constructor & Destructor Documentation

◆ Promise()

v8::Promise::Promise ( )
private

Member Function Documentation

◆ Cast()

static V8_INLINE Promise * v8::Promise::Cast ( Value * value)
inlinestatic

Definition at line 111 of file v8-promise.h.

◆ Catch()

MaybeLocal< Promise > v8::Promise::Catch ( Local< Context > context,
Local< Function > handler )

Register a resolution/rejection handler with a promise. The handler is given the respective resolution/rejection value as an argument. If the promise is already resolved/rejected, the handler is invoked at the end of turn.

Definition at line 8692 of file api.cc.

Here is the call graph for this function:

◆ CheckCast()

void v8::Promise::CheckCast ( Value * obj)
staticprivate

Definition at line 3967 of file api.cc.

Here is the call graph for this function:

◆ HasHandler()

bool v8::Promise::HasHandler ( ) const

Returns true if the promise has at least one derived promise, and therefore resolve/reject handlers (including default handler).

Definition at line 8740 of file api.cc.

Here is the call graph for this function:

◆ MarkAsHandled()

void v8::Promise::MarkAsHandled ( )

Marks this promise as handled to avoid reporting unhandled rejections.

Definition at line 8766 of file api.cc.

Here is the call graph for this function:

◆ MarkAsSilent()

void v8::Promise::MarkAsSilent ( )

Marks this promise as silent to prevent pausing the debugger when the promise is rejected.

Definition at line 8770 of file api.cc.

Here is the call graph for this function:

◆ Result()

Local< Value > v8::Promise::Result ( )

Returns the content of the [[PromiseResult]] field. The Promise must not be pending.

Definition at line 8749 of file api.cc.

Here is the call graph for this function:

◆ State()

Promise::PromiseState v8::Promise::State ( )

Returns the value of the [[PromiseState]] field.

Definition at line 8759 of file api.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Then() [1/2]

MaybeLocal< Promise > v8::Promise::Then ( Local< Context > context,
Local< Function > handler )

Definition at line 8710 of file api.cc.

Here is the call graph for this function:

◆ Then() [2/2]

MaybeLocal< Promise > v8::Promise::Then ( Local< Context > context,
Local< Function > on_fulfilled,
Local< Function > on_rejected )

Definition at line 8724 of file api.cc.

Here is the call graph for this function:

Member Data Documentation

◆ kEmbedderFieldCount

int v8::Promise::kEmbedderFieldCount = V8_PROMISE_INTERNAL_FIELD_COUNT
staticconstexpr

Definition at line 118 of file v8-promise.h.


The documentation for this class was generated from the following files: