我正在尝试找到任何可以通知我第draw()
层方法完成的回调/事件。
我会这样:
var layer = new Konva.Layer();
layer.draw(() => console.log('Draw finished'))
或者:
var layer = new Konva.Layer();
layer.on('redraw', () => console.log('Draw finished'))
layer.draw()
答案 0 :(得分:2)
layer.draw()
是一个同步功能。因此,您无需为此使用回调。
您可以这样做:
layer.draw();
console.log('Draw finished')
如果您需要活动,可以使用此功能:
layer.on('draw', () => {
console.log('Draw finished')
})
答案 1 :(得分:1)
您可以使用两个函数来获取回调。例如,您可以使用此方法或类似方法,因为javascript是异步lang。
从理论上讲,您可以将绘制放入callit函数中,并在其后放一个回调,这样它将调用另一个函数来扩展它。
callit(clb_extend, 'Steve');
function clb_extend(name) {
console.log('after 5 prints, Im called: '+name);
}
function callit(clb,smname) {
for(var i=0; i<5;i++) {
console.log('Look I am printing');
}
clb(smname);
}
因此,在打印5次之后,它会打印您所告知的内容,您可以使用它,而不必使用纯同步,因此其余代码仍然可以运行,而无需考虑他需要先完成那一个。否则,您可以尝试使用Promise和.then函数。您可以在类似的问题上阅读它。 How should I call 3 functions in order to execute them one after the other?