我在Amazon S3上上传用户个人资料图片,然后使用新的s3图片链接更新我的用户对象。
因为使用AWSTransferManager
上传图像的过程是异步的,所以在s3完成上传图像之前正在执行服务器更新调用,并且发送回链接将在下一个函数中使用。我怎么能等到上传图像然后执行updateUserProfile
功能?
@IBAction func saveButtonTapped(_ sender: UIBarButtonItem) {
var urlString: String!
user = tableViewVC.user
//Upload image to Amazon S3
urlString = self.user.uploadImageToS3(filePath: self.createImageFilePath()!, bucketName: Helper.shared.getAWSBucketName(), imageKeyName: Helper.shared.generateImageName())
if urlString != nil && urlString != "" {
//Then Update user profile and add image url link in main user database
self.user.userProfilePic = urlString!
self.user.updateUserProfile(user: self.user, token: Helper.shared.getAccessToken()!, completion: { (status, code, err, msg, body) in
if code == 200 {
print(body ?? "")
print("Updated user profile")
} else {
print(msg ?? "")
print(err ?? "")
}
})
} else {
print("NO URL FOUND")
}
}