相关问题
#鸿蒙通关秘籍#如何在鸿蒙开发中使用Promise模式实现异步操作?
1547浏览 • 2回复 待解决
#鸿蒙通关秘籍#鸿蒙应用侧与前端页面如何进行数据通信?
1006浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中使用Worker实现线程间异步通信?
1400浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中使用Promise进行文件写入操作?
1241浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中使用callback方式进行异步任务开发?
1560浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在OpenHarmony中使用KCP协议进行网络通信?
1264浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用openLink接口进行跳转?
1413浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用hilog进行日志输出?
1452浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用Navigation组件进行页面跳转?
1931浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在libevent中使用异步DNS解析功能
1088浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用Promise对象来处理异步操作?
1471浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在OpenHarmony中使用ProtoBuf进行数据通信和存储?
1897浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样在鸿蒙环境中使用JSVM-API进行Promise操作
856浏览 • 1回复 待解决
鸿蒙是否进行异步通信?
4933浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中使用GridContainer进行灵活布局?
1194浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在前端页面调用应用侧的函数?
962浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中实现Worker的创建与消息通信?
1405浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中使用UDP协议进行通信,并确保应用具备必要的网络权限?
1034浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中使用Swiper组件实现页面切换?
1417浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在dataORM中使用注解进行字段约束?
1029浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中使用WebRTC进行视频会议?
1544浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用Navigation管理页面跳转?
1340浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中使用NavPathStack管理导航页面
1906浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中使用Navigation组件实现页面内导航?
1670浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙应用中使用Deep Linking实现应用间跳转?
1635浏览 • 1回复 待解决
可以通过Promise模式与前端页面进行异步通信。下面展示如何在应用和页面两侧设置Promise:
应用侧创建一个Promise,并返回给前端页面。
typescript // xxx.ets import { webview } from '@kit.ArkWeb';
class AsyncClass { asyncOperation(): Promise<string> { return new Promise((resolve, reject) => { setTimeout(() => resolve("Message from application"), 3000); }); } }
@Entry @Component struct WebComponent { webviewController: webview.WebviewController = new webview.WebviewController(); asyncObj: AsyncClass = new AsyncClass();
build() { Column() { Web({ src: $rawfile('index.html'), controller: this.webviewController }) .registerJavaScriptProxy(this.asyncObj, "asyncObj", ["asyncOperation"]); } } }
前端页面调用该异步操作,并处理Promise的结果。
html <!-- index.html --> <!DOCTYPE html> <html> <body> <button type="button" onclick="callAsync()">Call Async Operation</button> <p id="result"></p> <script> function callAsync() { asyncObj.asyncOperation().then((message) => { document.getElementById("result").innerText = message; }); } </script> </body> </html>