qq_梦紫菱_0
2018-08-30 09:29
this.book.ready.then(()=>{
this.navigation=this.book.navigation
console.log(this.navigation)
return this.book.locations.generate()
这个book.ready是epub.js的方法 主要作用是初始化吗? 还有generate()是什么方法?出处是哪里呐?
你好,这个问题涉及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) })
快速入门Web阅读器开发
26396 学习 · 214 问题
相似问题