等到进程完成然后启动另一个进程

时间:2017-10-13 12:43:05

标签: swift asynchronous amazon-s3 xcode9

我在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")
        }

}

0 个答案:

没有答案