首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postMessage和postMessageAndAwaitResponse?

postMessage和postMessageAndAwaitResponse?
EN

Stack Overflow用户
提问于 2015-02-11 08:52:28
回答 1查看 429关注 0票数 0

在javascript中,我在fitst调用postMessage,然后调用postMessageAndAwaitResponse。

代码语言:javascript
复制
var ret;
naclModule.postMessage(msg);
ret = naclModule.postMessageAndAwaitResponse(msg);

在我的C++应用程序中pp::MessageHandler的实现是:

代码语言:javascript
复制
void HandleMessage(pp::InstanceHandle instance, const pp::Var& var_message)
{
    for (int i = 0; i < 10000; ++i)
    {
        for (int j = 0; j < 10000; ++j)
            ++m_iRetVal;
    }
}

HandleBlockingMessage是:

代码语言:javascript
复制
pp::Var HandleBlockingMessage(pp::InstanceHandle instance, const pp::Var& var_message) 
{
    return pp::Var(m_iRetVal);
}

m_iRetVal是类数据成员。

我测试了这个程序,postMessageAndAwaitResponse的返回值总是100000000。我想知道,在这种情况下,HandleBlockingMessage是否总是在HandleMessage完成后执行?我希望调用postMessage,在HandleMessage中做大量的计算(可能要花费很长时间),并调用postMessageAndAwaitResponse来获得计算结果。我可以这样做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 17:01:36

是的,它保证消息的顺序被保留。不幸的是,我认为我们的API文档没有提到这一点。但我们已经尽了很大的努力确保信息的传递是有序的。因此,您可以确保在调用postMessage之后调用postMessageAndAwaitResponse时,NaCl端将在第二个(HandleBlockingMessage)之前接收第一个(带有HandleMessage)。

这里有一个关于它的注释,以及一些确保它的代码:channel.cc&l=317

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

https://stackoverflow.com/questions/28450060

复制
相关文章

相似问题

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