SOURCE

// let promise = new Promise(function(resolve, reject) {
//   console.log('Promise');
//   resolve();
// });

// promise.then(function() {
//   console.log('Resolved.');
// });

// console.log('Hi!');


function loadImgAsync(url) {
	return new Promise(function(resolve, reject) {
		var image = new Image();
		
		image.onload = function() {
			resolve(image);
		};
		
		image.onerror = function() {
			reject(new Error('could not load' + url));
		};
		
		image.src = url;
	});
}

console.log(loadImgAsync('https://www.douban.com/photos/photo/2445256308/#image'));



var getJSON = function(url) {
	var promise = new Promise(function(resolve, reject) {
		var client = new XMLHttpRequest();
		client.open('GET', url);
		client.onreadystatechange = handler;
		client.responseType = 'json';
		client.setRequestHeader('Accept', 'application/json');
		client.sent():
		
		function handler() {
			if (this.readyState !== 4) {
				return;
			}
			if (this.status === 200) {
				resolve(this.response);
			} else {
				reject(new Error(this.statusText));
			}
		};
	});
	
	return promise;
};

getJSON('/posts.json').then(function(json) {
	console.log('contents:' + json);
}, function(error) {
	console.error('error', error);
});
console 命令行工具 X clear

                    
>
console