1)函式的柯里化(函式返回函式返回函式·····)其實是乙個在連綴呼叫時不停收集變數和資料的過程,同時使用閉包將收集到的變數進行儲存。這麼做可以使函式由複雜的多入單出變成簡單的單入單出的狀態,同時也可以做到將引數進行復用和函式延遲執行的功能
2) redux的中介軟體的位置,位於資料傳入redux後,redux執行反應變更(dispatch)之前,資料要穿過中介軟體才能真正進入並執行redux相關操作
function
createthunkmiddleware
(extraargument)
)=> next => action =>
// 如果外部函式的返回值是乙個物件就會將值傳遞下去,進入下一步
return
next
(action);}
;}const thunk =
createthunkmiddleware()
;thunk.withextraargument = createthunkmiddleware;
export
default thunk;
function
dispatch
(action)
····
}
function()
return
function
(createstore)
;var middlewareapi =};
var chain = middlewares.
map(
function
(middleware));
_dispatch = compose.
(void
0, chain)
(store.dispatch)
;return
_objectspread2
(, store,);
};};
}
知道了上面的所有之後,結論已經出來了,thunk是乙個將非同步操作(如資料請求等)從react元件中轉移到中介軟體中執行的redux中介軟體,可以將元件的**變得更簡潔單純(因為將複雜的非同步請求資料交給了中介軟體執行,可以讓元件專注於頁面的各種操作而不必分心去考慮資料**的事) co原始碼分析 thunk版本3 1 0
co的thunk版本,就是將所有 函式,generator,generator function,object,array,promise,都轉換為thunk函式,在thunk函式的 中,切換外部包裝的generator的狀態,即呼叫next方法,來依次執行所有的非同步任務。其中的,object和a...
原 distcc原始碼研究四
在 distcc原始碼研究三 中我提到dcc build somewhere timed函式,認為是在這個函式裡建立編譯程序中。那麼我們就看看這個函式是如何建立編譯程序的。dcc build somewhere timed函式裡面主要呼叫dcc build somewhere函式。下面我們仔細剖析下...
python原始碼理解
1,一切都是物件 2,typedef struct objectpyobject pyobject是不可變長度的物件 3,typedef structpyvarobject 可變長度的物件 4,每乙個物件都對應乙個型別物件 pytype type 5,每乙個物件都有乙個引用計數器 6,在python...