@Recardo_Recoly

В V8 возможны асинхронные вызовы без NODE JS?

В V8 возможно выполнить JS калбеком ?
То есть зарегать ее
function Func()
{
    print("YEEES");
}
cl.register(Func);

А потом через какое то время вызвать из С++ ?
Например в этой функции будет описано действие персонажа игры когда в него попали.
Если да то как ?
Потому что все что я нахожу либо написано под Node JS либо работает при вызове register
(то есть если попробовать вызвать потом то просто нечего не случится.)

Handle<v8::Object> global = _isolate->GetCurrentContext()->Global();
	Handle<v8::Value> value = global->Get(String::NewFromUtf8(_isolate, "test"));

	if (value->IsFunction()) {
		Handle<v8::Function> func = v8::Handle<v8::Function>::Cast(value);

		Handle<Value> js_result = func->Call(global, 0, {});
	}

Уже даже по названию пытался... И то работает только если вызвать это сразу в register.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
PoltoS
@PoltoS
Его нужно сначала преобразовать через Escape. Иначе он Local Handle, и такой вне ф-ции использовать нельзя.

https://v8.dev/docs/embed#handles-and-garbage-coll...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы