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">'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM