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

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
相关问题
拉起相册选择图片页面失败
1950浏览 • 1回复 待解决
进入相册或拍照选择图片做头像
13602浏览 • 2回复 已解决
HarmonyOS自定义相册选择页面咨询
408浏览 • 1回复 待解决
Docker 怎么安装Redis
3144浏览 • 1回复 待解决
救命,鸿蒙怎么写动画
5751浏览 • 2回复 待解决
如何打开指定文件夹,选择文件返回
8730浏览 • 1回复 待解决
hdc smode 无效怎么回事
1138浏览 • 1回复 待解决
docker 容器怎么选择时区?
2319浏览 • 1回复 待解决
应用分类应该怎么选择
5011浏览 • 2回复 待解决
gamePlayerId和teamPlayerId怎么选择
1875浏览 • 1回复 待解决
这个swipe事件怎么
9835浏览 • 2回复 待解决
HarmonyOS怎么获取系统相册的路径
412浏览 • 1回复 待解决