2013-03-03 12 views
5

Pracuję nad modułem węzła i próbuję przekazać instancję klasy, która podklasuje ObjectWrap jako argument wywołania zwrotnego JavaScript.Jak przekazać obiekt do wywołania zwrotnego JavaScript w V8

W innych miejscach byłem w stanie skutecznie unwrap JavaScript obiekty do tej samej klasy, używając:

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

Jak mogę zrobić odwrotnie? Chcę przekazać instancję GitCommit do wywołania zwrotnego JavaScript, takich jak:

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

Czy to możliwe? Jeśli tak, to proszę podać mi przykład lub link do odpowiedniej dokumentacji?

Odpowiedz

3

Więc piszesz dodatek do węzła. Wypróbuj:

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

Dziękuję * bardzo * za to! –

Powiązane problemy