函數(shù)可以傳參數(shù)對(duì)吧? 那函數(shù)的參數(shù)可以是函數(shù)行吧? 你的參數(shù)肯定是有用的才傳啊,不然你傳進(jìn)去干什么!@ 對(duì)吧~ 那你這個(gè)當(dāng)做參數(shù)傳進(jìn)去的函數(shù)一定被,大包裹函數(shù)執(zhí)行,那么這個(gè)被當(dāng)做參數(shù)而且被執(zhí)行的函數(shù)就是回調(diào)函數(shù)~~~
- 簡(jiǎn)單來(lái)說(shuō)回調(diào)函數(shù)就是一個(gè)函數(shù),一個(gè)被別人當(dāng)做參數(shù)傳走的函數(shù)//就像原配和小三都是女人,一般正經(jīng)的人家,原配都叫老婆,現(xiàn)在有一個(gè)人甘愿做別人的小三,同樣是女人,只是名字變了,不叫老婆叫小三
promise
為什么會(huì)有promise呢? 你用回調(diào)函數(shù)的時(shí)候,或者說(shuō)你寫(xiě)代碼的時(shí)候是不是會(huì)優(yōu)化代碼,比如別人的給你用的API都是封裝好的,你不看源碼你是不知道里面寫(xiě)的是什么東西,也不知道用這個(gè)api要哪些參數(shù),而且一般的api都會(huì)用到回調(diào)函數(shù),也就是把一些封裝好的函數(shù)作為參數(shù),那么你用這個(gè)api是不是要看一下源碼,才會(huì)用這些參數(shù)和api? 比如說(shuō)很多人都封裝ajax,有各個(gè)版本的ajax,有的版本要傳2個(gè)參數(shù),有的要傳5個(gè)參數(shù),~用起來(lái)是不是很煩?要看源碼? 而且基本好的api都用了回調(diào)函數(shù), 這時(shí)候就要一種為了方便別人用代碼的方式出現(xiàn)了,就是promise
什么是promise
promise只是一個(gè)確定函數(shù)形式的規(guī)范,也就是說(shuō)promise是一個(gè)規(guī)范
好處是什么?
- 優(yōu)化代碼,進(jìn)一個(gè)簡(jiǎn)化代碼
- 不用再看API使用別人的庫(kù)了,用then(里面放無(wú)名函數(shù))
- 可以對(duì)同一結(jié)果進(jìn)行多次處理
return new Promise(function(resolve,reject)){}
window.promise = function(fn){
return{
then:function(){}
}
}