Implementing callbacks
In keeping with the typical pattern of a Node program, add-ons also implement the notion of callbacks. As one might expect in a Node program, a C++ add-on performing an expensive and time-consuming operation should comprehend the notion of asynchronously executing functions.
The following code will expose a method that will pass back the current system time to any callback it is sent:
#include <node.h> #include <ctime> using namespace v8; Handle<Value> GetTime(const Arguments& args) { HandleScope scope; Local<Function> cb = Local<Function>::Cast(args[0]); const unsigned argc = 1; time_t stamp = time(0); Local<Value> argv[argc] = { Local<Value>::New(Number::New(stamp)) }; cb->Call(Context::GetCurrent()->Global(), argc, argv); return scope.Close(Undefined()); } void Init(Handle<Object> exports, Handle<Object> module) { module->Set(String::NewSymbol("exports"),FunctionTemplate...