JSFiddle - React, Tailwind, and code Playground

by gianlucaguarini

JavaScript

Object.defineProperty(Object.prototype, 'promise', {
  get: function() {
    return new Proxy({}, {
      get: (target, name) => {
        return new Promise((resolve) => {
          this[name] = resolve
        })
      }
    })
  },
  configurable: true
})


var img2 = new Image()
img2.promise.onload.then(() => console.log('Image loaded!'))
img2.crossOrigin = 'anonymous'
img2.src = 'https://placekitten.com/200/300'

var img = new Image()
img.promise.onerror.then(() => console.log('oh please! I can\'t load this!'))
img.src = 'trump.jpg'

Promise.all([
	img.promise.onerror,
  img2.promise.onload
]).then(() => {
	console.log('Rock and roll!')
})