亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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()是什么方法?出處是哪里吶?

正在回答

1 回答

你好,這個問題涉及epubjs的實現原理

  • book.ready的用途:

this.book.ready返回的是一個Promise對象,他的作用是讓我們可以在Book對象初始化完畢后實現我們自己的邏輯,this.book.ready對應的源碼如下:

this.ready?=?Promise.all([
?this.loaded.manifest,
?this.loaded.spine,
?this.loaded.metadata,
?this.loaded.cover,
?this.loaded.navigation,
?this.loaded.resources
]);

可以看到ready的定義是當manifest、spine、metadata、cover、navigation、resources這些資源都加載完畢后才會執行。


  • Locations.generate()方法的用途:

generate()是Locations對象的一個方法,Locations對象的主要作用是實現電子書的定位,Locations對象在Book對象中進行實例化,實例化的源碼如下:

this.locations?=?new?Locations(this.spine,?this.load.bind(this));

所以我們需要通過this.book.locations來引用Locations對象,generate()方法的用途是生成分頁,其主要用途是根據指定字數進行分頁,如果不指定參數時,默認會按照200個字符進行分頁,generate()會返回一個Promise對象,你可以打印一下返回結果就知道生成的內容了。

this.book.ready.then(()?=>?{
??return?this.book.locations.generate(500)
}).then(location?=>?{
??console.log(location)
})


0 回復 有任何疑惑可以回復我~
#1

qq_夢紫菱_0 提問者

這些是不是要多看一下epub.js的文檔?
2018-08-30 回復 有任何疑惑可以回復我~
#2

Sam 回復 qq_夢紫菱_0 提問者

epubjs的官方文檔只提供了API,要了解原理要看源碼,如果只關注實用,可以看官方提供的案例
2018-08-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
快速入門Web閱讀器開發
  • 參與學習       26493    人
  • 解答問題       228    個

帶你了解電子書閱讀器的工作原理,通過Vue.js快速實現Web閱讀器

進入課程

this.book.ready.then(()=>{ this.navigation=this.book.navigation console.log(this.navigation) return this.book.locations.generate()

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號