@@ -336,6 +336,17 @@ inline bool Value::IsFunction() const {
336
336
return Type () == napi_function;
337
337
}
338
338
339
+ inline bool Value::IsPromise () const {
340
+ if (_value == nullptr ) {
341
+ return false ;
342
+ }
343
+
344
+ bool result;
345
+ napi_status status = napi_is_promise (_env, _value, &result);
346
+ NAPI_THROW_IF_FAILED (_env, status, false );
347
+ return result;
348
+ }
349
+
339
350
inline bool Value::IsBuffer () const {
340
351
if (_value == nullptr ) {
341
352
return false ;
@@ -1379,6 +1390,36 @@ inline Object Function::New(size_t argc, const napi_value* args) const {
1379
1390
return Object (_env, result);
1380
1391
}
1381
1392
1393
+ // //////////////////////////////////////////////////////////////////////////////
1394
+ // Promise class
1395
+ // //////////////////////////////////////////////////////////////////////////////
1396
+
1397
+ inline Promise::Deferred Promise::Deferred::New (napi_env env) {
1398
+ return Promise::Deferred (env);
1399
+ }
1400
+
1401
+ inline Promise::Deferred::Deferred (napi_env env) : _env(env) {
1402
+ napi_status status = napi_create_promise (_env, &_deferred, &_promise);
1403
+ NAPI_THROW_IF_FAILED (_env, status);
1404
+ }
1405
+
1406
+ inline Promise Promise::Deferred::Promise () const {
1407
+ return Napi::Promise (_env, _promise);
1408
+ }
1409
+
1410
+ inline void Promise::Deferred::Resolve (napi_value value) const {
1411
+ napi_status status = napi_resolve_deferred (_env, _deferred, value);
1412
+ NAPI_THROW_IF_FAILED (_env, status);
1413
+ }
1414
+
1415
+ inline void Promise::Deferred::Reject (napi_value value) const {
1416
+ napi_status status = napi_reject_deferred (_env, _deferred, value);
1417
+ NAPI_THROW_IF_FAILED (_env, status);
1418
+ }
1419
+
1420
+ inline Promise::Promise (napi_env env, napi_value value) : Object(env, value) {
1421
+ }
1422
+
1382
1423
// //////////////////////////////////////////////////////////////////////////////
1383
1424
// Buffer<T> class
1384
1425
// //////////////////////////////////////////////////////////////////////////////
0 commit comments