小编sno*_*lhg的帖子

在异步插件中正确使用HandleScope

我正在编写一个异步Node Addon,但我一直在努力弄清楚我是否需​​要在调用客户端JavaScript回调的"After"函数中使用HandleScope.我已经看到了有和没有新范围的示例,但从来没有任何解释原因.这是一个例子:

void asyncWorkAfter(uv_work_t* req) {
   HandleScope scope; // <-- Do you need a new scope?

   const int argc = 1;
   Local<Value> foo = String::New("foo");
   Local<Value> argv[] = { foo };

   // assume I got my callback function out of req
   callback->Call(Context::GetCurrent()->Global(), argc,  argv);

   callback.Dispose();

   // if i use a new HandleScope, what happens to argv when we go out of scope?
   // Do i need to do something like a scope.Close() to copy argv to the parent scope?
} …
Run Code Online (Sandbox Code Playgroud)

v8 node.js

9
推荐指数
1
解决办法
1012
查看次数

如何序列化NodeJS?

我正在使用NodeJS探索服务器端JavaScript并使用ExpressJS编写REST API.我的REST API用于配置设备,就像配置家庭路由器一样.我想阻止并行REST调用尝试配置客户端而不会阻止多个非配置请求.

API资源示例:

/api/config/network
/api/config/filesystem
Run Code Online (Sandbox Code Playgroud)

在我的示例API中,从概念上讲,我希望一个客户端能够配置网络资源,而另一个客户端配置文件系统资源,同时允许其他客户端查询这些资源.

我不确定如何使用JavaScripts异步编程模型来实现这一目标.我来自非异步编程背景(多线程C++).我无法解决这个问题并想知道用手可以解决这个问题的方法,如果我必须编写插件/模块怎么办?

javascript rest node.js

2
推荐指数
1
解决办法
1146
查看次数

标签 统计

node.js ×2

javascript ×1

rest ×1

v8 ×1