首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火呼吸事件确认

火呼吸事件确认
EN

Stack Overflow用户
提问于 2014-01-28 13:09:28
回答 1查看 101关注 0票数 0

我已经创建了插件,这是基于火呼吸框架。实现事件,以实现插件的适当功能。

火呼吸事件是从以下方法的JSAPIAuto.cpp类异步触发的:

void FB::JSAPIAuto::fireAsyncEvent( const std::string& eventName, const std::vector<variant>& args )

我还使用了相同的.but,当同一事件通过回调或其他方式在JSAPIAuto.cpp中触发时,我希望得到它的确认。这样我就可以根据相同的结果在PluginAPI.cpp中处理我的下一个功能。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-28 22:20:34

如果您阅读该函数的文本,您将看到“异步”一词出现在它=]中,这表明,在FireBreath中触发类似于此的偶数是异步的,并且不允许以任何方式给它返回值。由于事件在某些浏览器上的实现方式,因此没有合理的方法来改变这种情况。

尽管如此,您可以通过在FB::JSObjectPtr中传递一个函数以存储并用作回调来完成您自己的事情;如果您使用Invoke调用该回调,并以""作为方法名,它将调用javascript函数并返回值,如下所示:

代码语言:javascript
复制
bool MyScriptingAPI::setCallback(const FB::JSObjectPtr& callback) {
    FB::variant res = callback->Invoke("", FB::variant_list_of("some")(3)("arguments"));
    return res.convert_cast<bool>();
}

这将调用回调,将结果转换为bool (true/false),并将结果返回给javascript。显然,如果返回一些不能转换为bool的内容,则会抛出异常,但您应该了解一般的概念。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21406422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档