如果我们加载一张图片的时候,我们常常会写:
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
混在一起用。
如果有人了解的话并回答的话,非常感谢!
一只名叫tom的猫
守着星空守着你
相关分类