Eşzamansız bir Düğüm Eklentisi yazıyorum, ancak istemci JavaScript geri çağrısı olarak adlandırılan "After" işlevinde bir HandleScope kullanmam gerekip gerekmediğini anlamaya çalışıyorum. Yeni kapsamları olan ve olmayan örneklerle karşılaştım, ama hiçbir zaman neden açıklama yapmadım. İşte bir örnek:Eşzamansız Addon'da HandleScope'un doğru kullanımı
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?
}
Geri aramayı çağırdığınızda bir HandleScope'a ihtiyacınız var mı?
Yeni bir HandleScope kullanıyorsanız, örnekte argv'ye ne olur?
Benim understaning Eğer HandleScope halk düzgün toplanmasına izin verir Yerel her kullandığınızda, ihtiyaç olmasıdır. –