У меня есть массив Promise разного типа. В данном конкретном случае Promise<URL>
и Promise<UIImage>
, которые я хочу предоставить when(fulfilled:)
В качестве примера:
let fileName = "somefilename"
let videos: [URL] = selectedItems.compactMap { guard $0.isVideo else {return nil}; return URL(string: $0.url) }
let images: [URL] = selectedItems.compactMap { guard !$0.isVideo else {return nil}; return URL(string: $0.url) }
let videoRequests = videos.map { RemoteDownloadManager.shared.downloadVideo(from: $0, withName: fileName) }
let imgRequests = images.map {RemoteDownloadManager.shared.downloadImage(from: $0)}
У меня есть два массива обещаний, но разных типов : [Promise<UIImage>]
и [Promise<URL]
.
Есть ли способ вызова when(fulfilled)
с объединенным, приведенным, массивом?
when(fulfilled: [imgRequests, videoRequests])
.done { items in
// [...]
}
Это не скомпилируется (очевидно) с ошибкой: Cannot invoke 'when' with an argument list of type '(fulfilled: [Any])'
Идеи?