問(wèn)題描述如果我們加載一張圖片的時(shí)候,我們常常會(huì)寫(xiě):let image = new Image();
image.onload = () => { // deal with downloaded image};
image.src = path;但是這樣的的過(guò)程顯然是異步回調(diào)的。請(qǐng)問(wèn)在用原生js的前提下,有沒(méi)有同步阻塞的寫(xiě)法呢?更新有人問(wèn)問(wèn)題背后的問(wèn)題,嗯……問(wèn)題背后當(dāng)然是有問(wèn)題的,要不然我也不會(huì)費(fèi)這么大力氣同步。我在用webgl寫(xiě)渲染,隨著demo越來(lái)越大,代碼也變得越來(lái)越丑陋。于是就想著封裝。假如一個(gè)場(chǎng)景中有一個(gè)物體Car,那么我希望代碼可以簡(jiǎn)答粗暴地寫(xiě)成如下的樣子:let car = new Car();function render() {
car.draw();
requestAnimationFrame(render);
}
requestAnimationFrame(render);但是這就要求在Car類內(nèi)部需要處理好所有的加載問(wèn)題。class Car { constructor() { // load shader
// load texture
}
draw() { // use shader and texture to render
}
}在構(gòu)造函數(shù)中加載,而draw依賴于構(gòu)造函數(shù)中加載的完成??梢钥紤]用Promise,但是很慚愧我對(duì)Promise這一套還不甚熟悉。而且很不確定是否能和webgl混在一起用。如果有人了解的話并回答的話,非常感謝!
JS如何同步阻塞地加載圖片
拉莫斯之舞
2018-07-21 22:08:59