this.book.ready.then(()=>{ this.navigation=this.book.navigation console.log(this.navigation) return this.book.locations.generate()
this.book.ready.then(()=>{
this.navigation=this.book.navigation
console.log(this.navigation)
return this.book.locations.generate()
這個book.ready是epub.js的方法 主要作用是初始化嗎?? 還有generate()是什么方法?出處是哪里吶?
2018-08-30
你好,這個問題涉及epubjs的實現原理
book.ready的用途:
this.book.ready返回的是一個Promise對象,他的作用是讓我們可以在Book對象初始化完畢后實現我們自己的邏輯,this.book.ready對應的源碼如下:
可以看到ready的定義是當manifest、spine、metadata、cover、navigation、resources這些資源都加載完畢后才會執行。
Locations.generate()方法的用途:
generate()是Locations對象的一個方法,Locations對象的主要作用是實現電子書的定位,Locations對象在Book對象中進行實例化,實例化的源碼如下:
所以我們需要通過this.book.locations來引用Locations對象,generate()方法的用途是生成分頁,其主要用途是根據指定字數進行分頁,如果不指定參數時,默認會按照200個字符進行分頁,generate()會返回一個Promise對象,你可以打印一下返回結果就知道生成的內容了。