中介軟體用過redux-thunk,也用過redux-promise-middleware,原理都很簡單。
thunk就是簡單的action作為函式,在action進行非同步操作,發出新的action。
而promise只是在action中的payload作為乙個promise,中介軟體內部進行處理之後,發出新的action。
這兩個簡單也容易理解,但是當業務邏輯多且複雜的時候會發生什麼情況呢?我們的action越來越複雜,payload越來越長,當然我們可以分離開來單獨建立檔案去處理邏輯,但是實質上還是對redux的action和reducer進行了汙染,讓它們變得不純粹了,action就應該作為乙個訊號,而不是處理邏輯,reducer裡面處理要好一些,但是同樣會生出幾個多餘的action型別進行處理,而且也只能是promise,不能做複雜的業務處理。
redux-saga將進行非同步處理的邏輯剝離出來,單獨執行,利用generator實現非同步處理。
saga任務,新建檔案處理業務邏輯,使用generator,redux-saga提供很多函式方便處理,put
發出action,takeevery
監聽action,takelatest
只執行最後一次action,call
執行函式,並且可以獲取promise的資料
import from 'redux-saga'
import from 'redux-saga/effects'
export function* hello()
const ajax = () => new promise(resolve=>settimeout(()=>resolve(99), 4000))
export function* incrementasync() )
}export function* watchincrementasync()
export default function* rootsaga()
啟動generator
const sagamiddleware = createsagamiddleware()
const store = createstore(
reducer,
)sagamiddleware.run(rootsaga)
redux saga的基本使用
yarn add redux saga mysaga.js 定義saga檔案 import from redux saga effects 模擬登陸介面 const userservice else 1000 function loginhandle action put和dispatch類似,執行...
對postman的研究
1.postman可用作macos,windows和linux作業系統的本機應用程式。2.最常用的方法是get,post,put和delete。方法的名稱是不言自明的。例如,get使您可以從伺服器檢索資料。post使您可以將資料新增到伺服器中的現有檔案或資源。put允許您替換伺服器中的現有檔案或資源...
對PE資源的研究
對pe資源的研究 轉 資源一般使用樹來儲存,通常包含3層,在nt下,最高層是型別,然後是名字,最後是語言。乙個pe檔案是否包含資源檔案,通常檢測塊表 section table 中是否含有 rsrc 不過這個方法對有些pe檔案無效。乙個型別表結構如下 resource directory resou...