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