1. `upload()` — это промис, у него нет `reject()`.
2. `reject()` — это ошибка, `cancel()` — это такая неведомая специализированная фигня, которая тянется через весь виджет. Мы, кажется, недавно где-то обсуждали про удаление `cancel()` же, да? Где это было?

В любом случае, это не относится к этой ветке. Можно исправить в #18. Я только за.