我正在编写一个异步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) 我正在使用NodeJS探索服务器端JavaScript并使用ExpressJS编写REST API.我的REST API用于配置设备,就像配置家庭路由器一样.我想阻止并行REST调用尝试配置客户端而不会阻止多个非配置请求.
API资源示例:
/api/config/network
/api/config/filesystem
Run Code Online (Sandbox Code Playgroud)
在我的示例API中,从概念上讲,我希望一个客户端能够配置网络资源,而另一个客户端配置文件系统资源,同时允许其他客户端查询这些资源.
我不确定如何使用JavaScripts异步编程模型来实现这一目标.我来自非异步编程背景(多线程C++).我无法解决这个问题并想知道用手可以解决这个问题的方法,如果我必须编写插件/模块怎么办?