add loading event logic
This commit is contained in:
parent
e90d9de5ed
commit
28e1b19e57
@ -17,6 +17,7 @@ import { Observable } from 'lib0/observable'
|
|||||||
import * as random from 'lib0/random'
|
import * as random from 'lib0/random'
|
||||||
import * as map from 'lib0/map'
|
import * as map from 'lib0/map'
|
||||||
import * as array from 'lib0/array'
|
import * as array from 'lib0/array'
|
||||||
|
import * as promise from 'lib0/promise'
|
||||||
|
|
||||||
export const generateNewClientId = random.uint32
|
export const generateNewClientId = random.uint32
|
||||||
|
|
||||||
@ -71,6 +72,13 @@ export class Doc extends Observable {
|
|||||||
this.shouldLoad = shouldLoad
|
this.shouldLoad = shouldLoad
|
||||||
this.autoLoad = autoLoad
|
this.autoLoad = autoLoad
|
||||||
this.meta = meta
|
this.meta = meta
|
||||||
|
this.isLoaded = false
|
||||||
|
this.whenLoaded = promise.create(resolve => {
|
||||||
|
this.on('load', () => {
|
||||||
|
this.isLoaded = true
|
||||||
|
resolve(this)
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -228,3 +228,19 @@ export const testSubdocsUndo = tc => {
|
|||||||
undoManager.redo()
|
undoManager.redo()
|
||||||
t.assert(elems.length === 1)
|
t.assert(elems.length === 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {t.TestCase} tc
|
||||||
|
*/
|
||||||
|
export const testLoadDocs = async tc => {
|
||||||
|
const ydoc = new Y.Doc()
|
||||||
|
t.assert(ydoc.isLoaded === false)
|
||||||
|
let loadedEvent = false
|
||||||
|
ydoc.on('load', () => {
|
||||||
|
loadedEvent = true
|
||||||
|
})
|
||||||
|
ydoc.emit('load', [ydoc])
|
||||||
|
await ydoc.whenLoaded
|
||||||
|
t.assert(loadedEvent)
|
||||||
|
t.assert(ydoc.isLoaded)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user