2013-03-03 24 views
5

Düğüm bir modül üzerinde çalışıyorum ve bir JavaScript geri çağrısına argüman olarak ObjectWrap alt sınıflarını içeren bir sınıf örneğini iletmeye çalışıyorum.V8'de JavaScript geri çağırma nesnesine nasıl geçilir

GitCommit *commit = ObjectWrap::Unwrap<GitCommit>(args[0]->ToObject()); 

nasıl ters yapacağım: JavaScript kullanarak aynı sınıfa nesneleri unwrap

başka yerlerde başarıyla edebildik?

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

bu mümkün mü: Ben gibi bir JavaScript geri arama için GitCommit bir örneğini geçmek istiyorum? Öyleyse birisi bana bir örnek veya ilgili belgelere bir bağlantı verebilir mi?

cevap

3

Yani bir düğüm eklentisi yazıyorsunuz. Deneyin:

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

Bunun için çok teşekkür ederim! –

İlgili konular