HarmonyOS 鸿蒙Next:emitter进行线程间通信,可以发送数据,但接收不到

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:emitter进行线程间通信,可以发送数据,但接收不到

        console.log(‘发送购物车ids’,cartIds)
let event = {
eventId: 99,
priority: emitter.EventPriority.HIGH
}
let eventData = {
data: {
ids: cartIds
}
}
emitter.emit(event, eventData)<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

    - 我在一个page里面发送了一个事件

    let event = {
eventId: 99
}
let callback = ({data}) => {

  console.log(<span class="hljs-string"><span class="hljs-string">'接收购物车ids'</span></span>,<span class="hljs-built_in"><span class="hljs-built_in">JSON</span></span>.stringify(data))
  
}
emitter.on(event, callback);

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

    - 在另一个page里面订阅这个事件

1711125939601.png

    - 但是可以发送数据,接收不到,这是什么原因?

# 版本

    - SDK 3.1.0



关于HarmonyOS 鸿蒙Next:emitter进行线程间通信,可以发送数据,但接收不到的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

10 回复

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

Api12中有以下变化

1、eventId是string类型,不可使用其他类型

cke_131.png

2、回调函数中,回调的参数是eventData类型,我们获取到其中的data,其中的key也必须是string类型,值可以是任意类型,可以是基本数据类型,也可以是对象。

cke_16287.png

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。

对象里面成员变量 只要都能被序列化 ,传递对象是可以的
已解决,data里面不能传入一个对象,只能是 number、string、boolen这种基础数据类型

期待HarmonyOS能在未来推出更多针对特定场景的优化功能。

那如果想传对象怎怎么办呢

我这问题用的是API9,不知道API12是怎么样的,等我有时间了,再试试看

楼主啊 怎么解决的啊

回到顶部