讨论广场 问答详情
AI Coding 把回调接口改成 Promise 后,为什么错误码全没了?
李强0100 2026-09-15 09:58:45
赞 246 评论 分享
harmonyos

改完以后异常只剩一句 reject,看不到原来的业务错误码。

return new Promise((resolve, reject) => {
  api.call((err, data) => {
    if (err) reject(err.message)
    else resolve(data)
  })
})

 

这里是不是把 BusinessError 信息自己丢掉了?

赞 246 评论 分享
写回答
全部评论(1)

这个现象一般就是输入法弹起来的时候,页面的高度计算没有跟着调整,导致底部的输入框被挡住了。

常见的原因有几个:一是你的页面根布局没有设置成自适应键盘高度,键盘弹起来之后,整个页面的可视区域变小了,但布局还是按原来的高度算的,输入框自然就跑到屏幕外面去了;二是你把输入框固定在底部,用了 bottom: 0 或者 position: absolute 定位,这种情况下键盘弹起来的时候不会自动把它顶上去。

解决思路大概是这样:首先要监听键盘弹起和收起的事件,拿到键盘的高度。然后在键盘弹起来的时候,给页面根容器或者输入框的位置加上一个偏移量,把输入框顶到键盘上方。比如键盘高度是 300px,那就把输入框的 bottom 改成 300px,键盘收起来的时候再改回 0。

另外如果你的页面是可滚动的,也可以在输入框获得焦点的时候,让它自动滚动到可视区域内,这样用户就能看到自己正在输入的内容。还有个细节要注意:不同设备、不同输入法的高度可能不一样,不要写死一个固定值,一定要动态获取。

赞
2026-09-23 13:41:38