Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 493
Closed
Description
Lets say we have the below addon where RunCallbackWithCall uses Call to call a callback and RunCallbackWithMakeCallback uses MakeCallback to call a callback.
#include<napi.h>voidRunCallbackWithCall(const Napi::CallbackInfo& info){Napi::Env env = info.Env(); Napi::Function cb = info[0].As<Napi::Function>(); cb.Call({Napi::String::New(env, "Hello, World!") })} voidRunCallbackWithMakeCallback(const Napi::CallbackInfo& info){Napi::Env env = info.Env(); Napi::Function cb = info[0].As<Napi::Function>(); cb.MakeCallback(env.Global(),{Napi::String::New(env, "Hello, World!") })} Napi::Object Init(Napi::Env env, Napi::Object exports){exports["runCallbackWithCall"] = Napi::Function::New(env, RunCallbackWithCall); exports["runCallbackWithMakeCallback"] = Napi::Function::New(env, RunCallbackWithMakeCallback); return exports} NODE_API_MODULE(hello, Init)If the callback passed to runCallbackWithCall throws an Error like this:
constaddon=require('bindings')('addon.node');addon.runCallbackWithCall((str)=>{console.log(str);thrownewError('Error in callback');});Then the following is displayed:
Hello, World! /home/pi/node-addon-api-experiments2/test/run-callback-with-call.js:5 addon.runCallbackWithCall((str) =>{^ Error: Error in callback at addon.runCallbackWithCall (/home/pi/node-addon-api-experiments2/test/run-callback-with-call.js:7:9) at Object.<anonymous> (/home/pi/node-addon-api-experiments2/test/run-callback-with-call.js:5:7) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:188:16) at bootstrap_node.js:609:3 Everything looks ok here. As is to be expected "Error: Error in callback" is displayed.
However, If the callback passed to runCallbackWithMakeCallback throws an Error like this:
constaddon=require('bindings')('addon.node');addon.runCallbackWithMakeCallback((str)=>{console.log(str);thrownewError('Error in callback');});Then the following is displayed:
Hello, World! /home/pi/node-addon-api-experiments2/test/run-callback-with-makecallback.js:5 addon.runCallbackWithMakeCallback((str) =>{^ Error: Unknown failure at Object.<anonymous> (/home/pi/node-addon-api-experiments2/test/run-callback-with-makecallback.js:5:7) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:188:16) at bootstrap_node.js:609:3 Things don't look correct here. I would expect "Error: Error in callback" to be displayed but "Error: Unknown failure" is displayed.
Metadata
Metadata
Assignees
Labels
No labels