使用回调方式:

OBJLoader.load('model.obj', function(geometry) {
  // 在加载完成后执行的回调函数
  console.log(geometry.normals); // 在回调函数内部使用
  // 可以在这里执行其他操作
});

使用Promises方式:

function loadOBJ() {
  return new Promise(function(resolve, reject) {
    OBJLoader.load('model.obj', function(geometry) {
      resolve(geometry);
    }, null, reject);
  });
}

loadOBJ().then(function(geometry) {
  console.log(geometry.normals); // 在Promise的then方法内部使用
  // 可以在这里执行其他操作
}).catch(function(error) {
  console.error(error);
});

使用async/await方式:

async function loadOBJ() {
  try {
    const geometry = await new Promise(function(resolve, reject) {
      OBJLoader.load('model.obj', function(geometry) {
        resolve(geometry);
      }, null, reject);
    });
    console.log(geometry.normals); // 在async函数内部使用
    // 可以在这里执行其他操作
  } catch (error) {
    console.error(error);
  }
}

loadOBJ();

注意:以上代码是伪代码,具体实现可能需要根据实际情况进行调整

请问如何使用回调、Promises或asyncawait等方法来等待OBJLoaderload函数加载完成后将threejs中保存加载的obj文件的geometrynormals数组在OBJLoaderload函数的其他地方使用

原文地址: http://www.cveoy.top/t/topic/iget 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录