Пытаюсь передать в расширение ссылку на функцию(колбэк) одной функцией, а из другой эту "запомненную" функцию вызвать (аналог addEventListener). Ни одного работающего примера не нашел в документации по этому. Нашел примеры под старое АПИ. Под новое могу передать функцию и тут-же ее несколько раз вызвать. Но не "сохранить на потом". Может хоть что ни-будь посоветуете???
Показывай код
код не работает! За основу брал это: https://nodejs.org/api/addons.html#callbacks в примере функция JS передает в аддон свою функцию и тут-же получает ее вызов со строкой в параметрах. Судя по всему (С++ знаю "со словарем") Local<Function> cb = Local<Function>::Cast(args[0]); это получение колбэка из параметров. А это cb->Call(context, Null(isolate), argc, argv).ToLocalChecked(); - вызов ее с параметрами. Пробовал сохранить ее во внешнюю переменную (вынес Local<Function> cb за пределы функции), но при попытке вызвать ее из другой функции получаю "гухой сбой" - "функции 2(которой пытаюсь вызвать колбэк) НЕ СУЩЕСТВУЕТ". Причем получаю это на уровне JS - Си вообще никаких ошибок не выдает.
Не понял что такое isolate + context, поэтому пробовал и их вынести/сохранить.. (или использовать "новую") - результат один - вылетает ошибка "функции test2 не существует/найдена"
А как ты функцию в аддон передаёшь? В примере всего 1 функция, которая сразу и вызывает коллбэк. Тебе, я так понял, надо одной функцией запомнить на стороне C++ коллбэк, другой функцией его вызвать
Обсуждают сегодня