Add missing `catch` blocks for Promises in JS
Since we moved to Webpack (see meta issue gitlab-ce#27486), all the JS files we write support ES6 and are by default transpiled using Babel. While we have ESLint present already, it doesn't support identifying poorly written Promises in ES6.
gitlab-ce!9969 add support for linting Promises and we're initially starting by enabling catch-or-return rule of the linter which identifies missing .catch() from all Promises.
At the time of writing this, there are 15 such offences that linter has identified as follows;
gitlab/app/assets/javascripts/awards_handler.js
228:5 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/boards_bundle.js
76:7 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/components/board_blank_state.js
39:9 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/components/board_list.js
74:11 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/components/modal/index.js
55:11 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/components/new_list_dropdown.js
29:11 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/models/list.js
148:5 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/boards/stores/boards_store.js
35:7 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/diff_notes/components/resolve_btn.js
78:9 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/diff_notes/services/resolve.js
37:7 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/due_date_select.js
119:5 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/labels_select.js
398:15 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/milestone_select.js
164:15 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/monitoring/prometheus_graph.js
44:5 error Expected catch() or return promise/catch-or-return
gitlab/app/assets/javascripts/users_select.js
57:13 error Expected catch() or return promise/catch-or-return
There's already an open MR gitlab-ce!9991 which adds .catch() block for all such occurrences, but most of them are empty implementation. We need to handle failing Promises correctly. So this is just a meta issue that gets closed once gitlab-ce!9991 is updated and merged.