是否有任何简单的方法来运行协同程序在js不使用第三方库?



尝试做类似于Babylon.js的https://doc.babylonjs.com/divingDeeper/events/coroutines


const spawnMeshesCoroutine = function* () {
spawnTheFirstMesh();
yield;
spawnTheSecondMesh();
yield;
spawnTheThirdMesh();
};
scene.onBeforeRenderObservable.runCoroutineAsync(spawnMeshesCoroutine());

但是想知道是否有任何简单的JS示例来运行一个更简单的协程,可以在不阻塞UI的情况下处理JS中一些昂贵的任务。

"昂贵任务"的实验:寻找解决方案,为react启用非阻塞60fps自动建议UI

跨多个事件循环运行函数的一种方法是:

async function spawnFirstMeshAsync() {
return spawnFirstMesh();
}
async function spawnSecondMeshAsync() {
return spawnSecondMesh();
}
async function spawnThirdMeshAsync() {
return spawnThirdMesh();
}
async function spawnMeshes() {
await spawnFirstMesh();
await spawnSecondMesh();
await spawnThirdMesh();
}

关于像Babylon.js那样与帧同步,请查看requestAnimationFrame.

最新更新