摘要:什么是異步編程的一種方案,是一個容器保存著未來將可能發(fā)生的事情實例對象的特點中的狀態(tài)只有異步操作結果才能改變中有個狀態(tài)狀態(tài)的改變或者狀態(tài)一旦改變,就不會再變一秒鐘以后會輸出值得注意的是新建的過程中構造函數(shù)會被立即執(zhí)行使用實現(xiàn)請求
什么是Promise
異步編程的一種方案, 是一個容器保存著未來將可能發(fā)生的事情
promise實例對象的特點1、promise中的狀態(tài)只有異步操作結果才能改變
promise中有3個狀態(tài) 1、pending 2、resolve 3、rejected
狀態(tài)的改變 1->2 或者1->3
2、狀態(tài)一旦改變,就不會再變
function testPromise(ms) { return new Promise(function (resolve,reject) { setTimeout(resolve,ms,"done") }) } testPromise(1000).then(function (value) { console.log(value) })
一秒鐘以后會輸出done 值得注意的是新建promise的過程中 構造函數(shù)會被立即執(zhí)行
使用promise實現(xiàn)ajax請求
var getJSON=function (url) { return promise=new Promise(function (resolve,reject) { var xhr=new XMLHttpRequest(); xhr.open("GET",url); xhr.responseType="json"; xhr.setRequestHeader("Accept","application/json") xhr.onreadystatechange=handler; function handler() { if(this.readyState!=4){ return ; }else{ if(this.status==200){ resolve(this.response); }else{ reject(this.status); } } } xhr.send(); }) } getJSON("a.json").then(function (res) { console.log(res) }).then(function (msg) { console.log(msg) })
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85211.html
摘要:的幾個擴展總結描述和相反,當所有的被拒絕之后,方法執(zhí)行完成的決議,如果存在一個執(zhí)行完成的決議,方法則執(zhí)行拒絕里邊的所有實例反過來就好了執(zhí)行到此執(zhí)行到此描述忽略被拒絕的,只需要有一個完成的,方法就執(zhí)行完成操作,如果全部的都被拒絕,方法執(zhí)行拒絕 Promise的幾個擴展API總結 1. Promise.none 描述: 和 Promise.all 相反,當所有的promise被拒絕之后,n...
摘要:對于的來說基元函數(shù)包括組合函數(shù)的類型簽名返回情況完成如果傳入的可迭代對象為空,會同步地返回一個已完成狀態(tài)的。相反,如果是在指定的時間之后完成,剛返回結果就是一個拒絕狀態(tài)的從而觸發(fā)方法指定的回調(diào)函數(shù)。在行中,對每個小任務得到的結果進行匯總。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 從ES6 開始,我們大都使用的是 P...
摘要:構造函數(shù)的實現(xiàn)我們在使用的時候其實是使用關鍵字創(chuàng)建了一個的實例,其實是一個類,即構造函數(shù),下面來實現(xiàn)構造函數(shù)。 showImg(https://segmentfault.com/img/remote/1460000018998456); 閱讀原文 概述 Promise 是 js 異步編程的一種解決方案,避免了 回調(diào)地獄 給編程帶來的麻煩,在 ES6 中成為了標準,這篇文章重點不是敘...
摘要:使用是極好的,它是如此有用以至于我覺得應該好好研究一下,甚至是實現(xiàn)一個簡易的版本。構造函數(shù)檢查參數(shù)例如是不是函數(shù)啊初始化,創(chuàng)建對象執(zhí)行因此構造函數(shù)里面?zhèn)魅氲氖橇⒓幢粓?zhí)行的。 使用Promise是極好的,它是如此有用以至于我覺得應該好好研究一下Promise,甚至是實現(xiàn)一個簡易的版本。實現(xiàn)之前,我們先來看看Promise的用途: 使用Promise callback hell Promi...
摘要:使用對象的好處在于可以將異步操作以同步操作的流程表達出來,避免了層層嵌套的回調(diào)函數(shù)。對象異步操作拋出錯誤,狀態(tài)就會變?yōu)?,就會調(diào)用方法指定的回調(diào)函數(shù)處理這個錯誤。 Promise 含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強大。它由社區(qū)最早提出和實現(xiàn),ES6 將其寫進了語言標準,統(tǒng)一了用法,原生提供了 Promise 對象。 所謂 P...
摘要:以上代碼,可以完美通過所有用例。在的函數(shù)中,為何需要這個同樣是因為規(guī)范中明確表示因此我們需要這樣的來確保只會執(zhí)行一次。其他情況,直接返回以該值為成功狀態(tài)的對象。 Promise是前端面試中的高頻問題,我作為面試官的時候,問Promise的概率超過90%,據(jù)我所知,大多數(shù)公司,都會問一些關于Promise的問題。如果你能根據(jù)PromiseA+的規(guī)范,寫出符合規(guī)范的源碼,那么我想,對于面試...
閱讀 2066·2021-10-08 10:04
閱讀 3097·2021-09-22 10:02
閱讀 2250·2019-08-30 15:56
閱讀 838·2019-08-30 15:54
閱讀 934·2019-08-30 15:54
閱讀 1290·2019-08-30 15:53
閱讀 2518·2019-08-30 11:21
閱讀 3568·2019-08-30 10:56