我正在研究Node模块,我正在尝试将一个将ObjectWrap
子类作为参数的类的实例传递给JavaScript回调。
在其他地方,我已经能够使用:
成功地将JavaScript对象解包到同一个类中 GitCommit *commit = ObjectWrap::Unwrap<GitCommit>(args[0]->ToObject());
我怎么能这样做呢?我想将GitCommit
的实例传递给JavaScript回调,例如:
Local<Value> argv[] = {
// Error code
Local<Value>::New(Integer::New(0)),
// The commit
commit // Instance of GitCommit : ObjectWrap
};
// Both error code and the commit are passed, JS equiv: callback(error, commit)
ar->callback->Call(Context::GetCurrent()->Global(), 1, argv);
这可能吗?如果是这样,有人请给我一个例子,或相关文件的链接?
答案 0 :(得分:3)
所以你正在编写一个节点插件。尝试:
Handle<Value> argv[] = {
// Error code
Integer::New(0),
// The commit
commit->handle_ // Instance of GitCommit : ObjectWrap
};
// Both error code and the commit are passed, JS equiv: callback(error, commit)
ar->callback->Call(Context::GetCurrent()->Global(), 1, argv);