gpt4 book ai didi

javascript - 如何在 V8 中将对象传递给 JavaScript 回调

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:22 25 4
gpt4 key购买 nike

我正在开发一个 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);

这可能吗?如果可以,请给我举个例子,或者相关文档的链接?

最佳答案

所以你正在编写一个 Node 插件。尝试:

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);

关于javascript - 如何在 V8 中将对象传递给 JavaScript 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com