如何能讓js代碼寫起來更語義化和更具有可讀性
想到這里一個js框架雛形在我大腦中慢慢形成,暫且命名為flowJS。
接著說說這個框架應(yīng)該有哪些API?
可以預(yù)先規(guī)劃好流程的每一步,如this.setNext(‘步驟A’).setNext(‘步驟B’)……
可以在任何一步?jīng)Q定下一步做什么,如 this.setNext(‘步驟C’),其實這里的API和上面的一樣,只是調(diào)用的地方不一樣而已。
在任何一步中,可以知道當前步是在做什么,前面一步做了什么、下一步準備要做什么,如this.getCurr()、this.getPrev()、this.getNext()。
當前步做完后,能將結(jié)果告訴下一步(僅僅是下一步能獲取到當前步傳遞的結(jié)果,也就是為了保護變量污染,每一步都只能獲取到前一步的結(jié)果),如 給下一步傳值this.nextData({name1:value1,name2:value2,……})、獲取上一步傳來的值this.stepData(name1)或this.stepData()。
可以設(shè)置或獲取整個流程的全局變量,這樣所有的步驟都能共享該變量,如 設(shè)置全局變量值this.flowData({name1:value1,name2:value2,……}),獲取全局變量值this.flowData(name1)或this.flowData()。
上一步可以知道當前步的執(zhí)行結(jié)果,成功 or 失敗,如 在上一步中設(shè)置this.setNext(‘步驟B’, successFun, failFun)、當前步中通過this.success(args)、this.fail(args)來告訴上一步。
當前步可以隨時通知下一步開始執(zhí)行,如this.next()。
有些步驟能并行執(zhí)行,并且要都執(zhí)行完才能執(zhí)行下一步,如 this.setNext(‘步驟A’).setNext([步驟B1,步驟B2,步驟B3]).setNext(‘步驟C’)。
可以在任何時候知道當前代碼流程運行過的軌跡,如flowJS.trace,這對于了解頁面的執(zhí)行過程會比較有幫助。
Talk is cheap, Show me the code!
1、可以預(yù)先規(guī)劃好流程的每一步,如this.setNext(‘步驟A’).setNext(‘步驟B’)……


2、可以在任何一步?jīng)Q定下一步做什么,如 this.setNext(‘步驟C’) ,其實這里的API和上面的一樣,只是調(diào)用的地方不一樣而已。


非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
