HarmonyOS getStringByName方法二次封装
为使用方便简单二次封装了一下getStringByName方法,用于向资源库读取stirng.json对应name的value值,但是有点小问题。这是个异步方法,有时(有的场景)页面代码跑的快,数据还没更新过来,导致显示内容是空的,如何二次封装为同步方法?或其它封装、调用技巧?
封装代码:
// StringByName.ets
import { BusinessError } from '@ohos.base';
import { common } from '@kit.AbilityKit';
class StringByName {
context = getContext(this) as common.UIAbilityContext
async stringByName(name: string): Promise<string> {
return new Promise((resolve, reject) => {
this.context.resourceManager.getStringByName(name, (error: BusinessError | null, value: string) => {
if (error) {
reject(error); // 使用reject来拒绝Promise
} else {
resolve(value); //使用resolve来解决Promise
}
});
});
}
}
export default new StringByName();
//调用代码:
import StringByName from '../../StringByName';
@State Pull_to_load_more: string = ''
@State Release_to_load: string = ''
@State Happily_loading: string = ''
StringByName.stringByName('Pull_to_load_more').then(str => {
this.Pull_to_load_more = str
})
StringByName.stringByName('Release_to_load').then(str => {
this.Release_to_load = str
})
StringByName.stringByName('Happily_loading').then(str => {
this.Happily_loading = str
})
// refreshConfigurator属性设置
setTimeout(() => {//setTimeout()临时方案,目的是等待数据后再传给目标接口
this.refreshConfigurator.setLoadTextPullUp1(this.Pull_to_load_more) //'正在上拉刷新...'
this.refreshConfigurator.setLoadTextPullUp2(this.Release_to_load) //'放开刷新'
this.refreshConfigurator.setLoadTextLoading(this.Happily_loading) //'正在玩命加载中...'
}, 100)
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS aioxs二次封装
171浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何封装axios请求并进行二次封装
221浏览 • 1回复 待解决
HarmonyOS 自定义弹窗如何二次封装和使用
720浏览 • 1回复 待解决
HarmonyOS 权限二次申请
104浏览 • 1回复 待解决
class二次刷新渲染数组
836浏览 • 1回复 待解决
HarmonyOS cocos引擎能否二次启动
486浏览 • 1回复 待解决
HarmonyOS @ohos.request内部是否是基于http库进行的二次封装
117浏览 • 1回复 待解决
实现二次侧滑退出应用
1921浏览 • 1回复 待解决
HarmonyOS 如何实现二次贝塞尔曲线动画?
467浏览 • 1回复 待解决
HarmonyOS 需要一个网络请求axios二次封装的项目或者demo供参考
259浏览 • 1回复 待解决
HarmonyOS 路由第二次跳转到webview页面,无法触发webview.once('webInited')方法
127浏览 • 1回复 待解决
ArkTS想跟native C++交互能否基于原来jni接口的so做二次封装调用?
140浏览 • 1回复 待解决
华为账号实时验证/二次放号相关咨询
1854浏览 • 1回复 待解决
HarmonyOS napi_call_threadsafe_function 调用第二次crash
661浏览 • 1回复 待解决
HarmonyOS 如何获取相机采集的图像数据进行二次处理?
212浏览 • 1回复 待解决
HarmonyOS 相机使用 ImageReceiver 作为输出是为了预览二次处理吗?
104浏览 • 1回复 待解决
HarmonyOS 如何拦截系统返回,实现返回时提示二次确认弹窗
629浏览 • 0回复 待解决
HarmonyOS 如何防止app或者hap包等被二次签名打包
114浏览 • 1回复 待解决
如何避免app的二次打包,确保应用的安全性?
832浏览 • 1回复 待解决
HarmonyOS Connect HiLink SDK二次开发指南在哪里有呀
8671浏览 • 1回复 待解决
Image已加载网络图片,二次加载是否有缓存机制
543浏览 • 1回复 待解决
HarmonyOS Web组件中如何对二次跳转的url添加head头信息
158浏览 • 1回复 待解决
HarmonyOS 相机帧二次处理,监听到相机不可用 CAMERA_STATUS_UNAVAILABLE
420浏览 • 1回复 待解决
HarmonyOS 为什么连续调用readDescriptorValue时,第二次调用不会触发callback?
120浏览 • 1回复 待解决
PersistentStorage持久化第二次获取不到,在两个model里
740浏览 • 1回复 待解决
可以使用getStringByNameSync同步获取资源名称,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5#getstringbynamesync9