promise

初識Promise


var promiseCount = 0

function testPromise() {

? ?var thisPromiseCount = ++promiseCount

? ?var log = 0

? ?log = '開始(同步代碼開始)'

? console.log(log)

? // 我們創(chuàng)建一個新的promise: 然后用'result'字符串完成這個promise (3秒后)

? var p1 = new Promise(function (resolve, reject) {

? // 完成函數帶著完成(resolve)或拒絕(reject)promise的能力被執(zhí)行

? log = thisPromiseCount + '' + 'Promise開始(異步代碼開始)'

? console.log(log)

? // 這只是個創(chuàng)建異步完成的示例

? ?window.setTimeout(function () {

? ? ? ?// 我們滿足(fullfil)了這個promise!

? ? ? ?// console.log('set')

? ? ? ?resolve(thisPromiseCount)

? ? ? ?}, Math.random() * 2000 + 1000)

});

// 定義當promise被滿足時應做什么

p1.then(function (val) {

? ?// 輸出一段信息和一個值

? ?log = val + '' + 'Promise被滿足了(異步代碼結束)'

? ?console.log(log)

});

log = thisPromiseCount + '' + '建立了Promise(同步代碼結束)'

console.log(log)

}

上面是從MDN改寫的例子,它的結果是

最后一條是3秒后才跳出來的。即使沒有定時器,p1.then(function (val)也是最后調用的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • //本文內容起初摘抄于 阮一峰 作者的譯文,用于記錄和學習,建議觀者移步于原文 概念: 所謂的Promise,...
    曾經過往閱讀 1,320評論 0 7
  • 特點 Promise能將回調分離出來,在異步操作執(zhí)行之后,用鏈式方法執(zhí)行回調,雖然es5用封裝函數也能實現,但是如...
    一二三kkxx閱讀 717評論 0 1
  • Promsie 通俗來說,Promise就是一個承諾,例如,我承諾明年要賺1百萬,then方法中的onFulfil...
    老虎愛吃母雞閱讀 509評論 0 0
  • 去年6月份, ES2015正式發(fā)布(也就是ES6,ES6是它的乳名),其中Promise被列為正式規(guī)范。作為ES6...
    yzc123446閱讀 331評論 0 1
  • 本文適用的讀者 本文寫給有一定Promise使用經驗的人,如果你還沒有使用過Promise,這篇文章可能不適合你,...
    HZ充電大喵閱讀 7,457評論 6 19

友情鏈接更多精彩內容