function createImage(url) {
  return $.Deferred((deferred) => {
    const $img = $('<img>');

    $img.one('load', () => {
      $img.off('error abort');
      deferred.resolve($img);
    }).one('error abort', () => {
      $img.off('load').detach();
      deferred.reject($img);
    }).css({
      display: 'none',
    }).appendTo(document.body).attr('src', url);
  }).promise();
}
@method createImage

create `<image>` from url string

@param {String} url
@return {Promise} - then: $image