Js中强大的Promise异步机制

少年别激动 我的这份随笔里面只涉及promise概念 如果想深入了解Promise的用法 可以去阮老师es6入门里面详读 奉上链接

http://es6.ruanyifeng.com/#docs/promise

我的这份笔记很短 只是简单的介绍了下什么是Promise 

什么是Promise呢 肯定会有和我一样的童鞋说 promise是承诺 对它的英文名的确是承诺 

但它原本可不是这样的 原本翻译为普罗米修斯 好像是一位天神 神又是什么呢 神可以预知未来啊!!!

那我理解成Promise就是神就是可以预知未来对吗 对的!至少我开始是这么理解的  这个promise能预知未来发生的事 正式的解释下:

所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise是一个对象,从它可以获取异步操作的消息。Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。(摘自阮老师的es6入门)

这够清楚了吧!!!

我对promise还有这一种理解就是字面意思 promise 承诺 

它承诺一件事 当有了结果(异步事件的结果)就会承诺回调我们 。

这些概念只是有助于理解 想用好 还是得自己动手多敲几遍代码 这样才能...不说了 我去敲了~~

补上刚刚练习的代码(用Promise异步加载图片)

function loadImageAsync(url) {
return new Promise(function(resolve, reject) {
var image = new Image();

image.onload = function() {
resolve(image)
};

image.onerror = function() {
reject(new Error('图片地址'+url+'加载失败'));
};

image.src = url;
});
}
loadImageAsync('http://pic.sogou.com/news/images/logo.png').then(function(value) {
console.log(value)
})

function other() {
console.log('无阻塞执行其他的函数')
}
other() ;
优先输出主线程的函数 '无延迟执行其他的函数'
再输出异步执行的结果 '<img src="http://pic.sogou.com/news/images/logo.png">'

原文地址:https://www.cnblogs.com/Zwq286179/p/6001918.html