选择相册怎么等待返回啊?

let  photoUris:Array<string> = ['']
try {
  let photoPick = new picker.PhotoViewPicker();
  let pickOptions = new picker.PhotoSelectOptions();
  pickOptions.maxSelectNumber = 1;
  pickOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
  photoPick.select(pickOptions)
    .then((pickResult: picker.PhotoSelectResult) => {
      photoUris = pickResult.photoUris
    })
} catch (e) {
  photoUris = ['']
  console.error(e)
}
return photoUris

select还没有触发return就执行了,怎么等select返回后在执行return


App开发
2024-04-08 14:43:50
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aleign

你写错了 select 是异步操作,肯定不会阻塞 return

photoPick.select(pickOptions)
    .then((pickResult: picker.PhotoSelectResult) => {
      photoUris = pickResult.photoUris
    })

改成下面


let pickResult: picker.PhotoSelectResult = await photoPick.select(pickOptions)
photoUris = pickResult.photoUris

你可以了解一下 js 中的 Promise 机制

分享
微博
QQ
微信
回复
2024-04-08 16:44:35
相关问题
进入相册或拍照选择图片做头像
11611浏览 • 2回复 已解决
如何打开指定文件夹,选择文件返回
6830浏览 • 1回复 待解决
docker 容器怎么选择时区?
705浏览 • 1回复 待解决
应用分类应该怎么选择
3223浏览 • 2回复 待解决
gamePlayerId和teamPlayerId怎么选择
135浏览 • 1回复 待解决
怎么把视频保存到相册以及主机端?
2253浏览 • 1回复 待解决
鸿蒙怎么跳转进入email 选择
5486浏览 • 1回复 待解决
HarmonyOS SDK和openHarmony SDK怎么选择
5781浏览 • 1回复 待解决
JAVA UI 怎么返回上一页?
5190浏览 • 2回复 已解决
arkui怎么展示接口返回的富文本?
1067浏览 • 1回复 待解决
Docker 怎么安装Redis
1521浏览 • 1回复 待解决
鸿蒙请求相册和相机的demo?
3833浏览 • 1回复 待解决
救命,鸿蒙怎么写动画
4320浏览 • 2回复 待解决
这个swipe事件怎么
8186浏览 • 2回复 待解决
fetch返回no internet
5421浏览 • 2回复 已解决
IDE安装报错怎么回事
1554浏览 • 1回复 待解决
ohpm安装失败怎么回事
2185浏览 • 1回复 待解决
DevEco Studio出错怎么回事?
1634浏览 • 1回复 待解决