Сегодня столкнулся с причудой в библиотеке ng2-file-upload и хотел задокументировать ее на случай, если кто-то еще борется с той же проблемой.
Получение ответа от вашего API должно быть простым вызовом хука жизненного цикла onCompleteItem(). Однако при использовании данных response response[‘data’] (или любое другое свойство JSON, к которому вы можете попытаться получить доступ) будет не определено. Почему это произошло?
Взглянув на функцию onCompleteItem, мы видим:
onCompleteItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any;
Ах ха! Как ни странно, код не проверяет тип возвращаемого значения (в моем случае из бэкенда API Node.js это JSON) и приводит все случаи в виде строки.
Простое исправление — просто перевернуть его обратно в JSON:
let result = JSON.parse(response);
Очевидно, вы захотите обернуть это какой-нибудь логикой try/catch или другой обработкой ошибок в рабочей среде, но я надеюсь, что это сэкономит вам несколько минут на обнаружение неожиданной ошибки.