Your question is Promises, Debounce, and JS Patterns. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
How would you explain promises, implement debounce and throttle utilities, and reason about ES5 classes, prototypes, inheritance, and the value of this in arrow functions?