Promise: .done() works in Safari

Using async makes Safari behave strangely on page load. Resorting to
using setTimeout to make proper errors.
Merge pull request #75 from Aintaer/master

Promise: .done() works in Safari