问题描述
我有这个代码(这里只是伪代码):
JavaSDK.java
renderUI();
emmitReactNativeEvent();
ReactNative.ts
const sleep = (time: number) => {
return new Promise((resolve) => setTimeout(resolve,time))
}
emmiter.on('react-native-event',() => {
console.log('Inside-Before');
sleep(1000);
console.log('Inside-After');
JavaSDK.finish();
}
JavaSDK.init();
当我执行 ReactNative.ts 脚本时,我观察到了奇怪的行为。
执行是这样的:
- 创建事件监听器
- 调用本机库,该库将显示本机 UI(不仅仅是组件,而是整个屏幕)
- 当本机代码正在执行时,它会发出事件
- RN 中的回调将在来自 JavaSDK 的 UI 后面的后台执行
- 回调完成后调用JavaSDK方法关闭原生UI
现在的问题是 setTimeout()
和 setInterval()
似乎根本不起作用。回调在打印 Inside-Before
时被调用,但随后卡在 sleep()
上并且永远不会完成......
我还尝试将 setInterval()
与一些控制台日志一起使用并在运行 JavaSDK 之前调用它...一旦 SDK 被初始化,控制台日志就会停止打印 - 似乎 setInterval()
已暂停...但是在 JavaSDK 完成后,控制台日志恢复...
知道发生了什么吗?我该如何解决。我希望能够在我的回调中使用 setTimeout
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)