Я создал обещание, которое получает некоторые данные из API и возвращает их. Теперь я застрял после получения данных JSON, которые мне нужны, чтобы сохранить их в памяти устройства (область). После вызова обещания при попытке получить сообщение об ошибке «Не удается преобразовать значение типа« (Any) -> Void »в ожидаемый тип аргумента« (_) -> _ »). Но когда я пытаюсь сделать это работает отлично. Но мне нужно использовать затем, чтобы сохранить данные в области.
Следующий подход работает нормально
Translator().translators().done { data -> Void in
print(data[0].name)
}.catch { error in
print(error)
}
Но следующий подход не удался
Translator().translators().then() { data -> Void in
print(data)
}.catch() {
(e: Error) in
print(e)
}
Выше выдает ошибку, которая говорит
Cannot convert value of type '(Any) -> Void' to expected argument type '(_) -> _'
и следующий подход дает еще одну похожую ошибку
Translator().translators().then() {
(data: [Translator]) -> Void in
print(data[0].name)
}.catch() {
(e: Error) in
print(e)
}
сообщение об ошибке:
Cannot convert value of type '([Translator]) -> Void' to expected argument type '([Translator]) -> _'
Обещание, которое я создал:
func translators() -> Promise<[Translator]> {
return firstly {
Alamofire.request("http://192.168.0.107:3000/translatdors", method: .get).responseData()
}.map {
try JSONDecoder().decode([Translator].self, from: $0.data)
}
}
Изображение моего кода и ошибки