Use jQuery promises (not deprecated `complete`)