Javascript Promise.all在执行所有解析之前触发

Javascript Promise.all在执行所有解析之前触发,javascript,promise,Javascript,Promise,我有以下代码: const promises = []; const gltfLoader = new THREE.GLTFLoader(manager); for (const model of Object.values(tmodels)) { promises.push(processTransformModel(model)); } Promise.all(promises) .then(() => { manager.on

我有以下代码:

  const promises = [];
  const gltfLoader = new THREE.GLTFLoader(manager);
  for (const model of Object.values(tmodels)) {
    promises.push(processTransformModel(model));
  }

  Promise.all(promises)
      .then(() => {
        manager.onLoad = function () {
          loadAttachModels();
        };
      })
      .catch((e) => {
        // handle errors here
      });

  function processTransformModel(model) {
    new Promise( function( resolve, reject ) {
      if ( model.url.match( /\.zip$/ ) ) {
        new THREE.ZipLoader().load( model.url ).then( function( zip ) {
          manager.setURLModifier( zip.urlResolver );
          resolve( zip.find( /\.(gltf|glb)$/i )[ 0 ] );
        } );
      } else {
        resolve( url );
      }
    } ).then( function ( file ) {
      gltfLoader.load(file, (gltf) => {
        //do stuff with gltf
    } );
  }
有两个gltf文件要加载,一个小,一个大。首先将大的一个添加到数组中。 我已经跟踪了一点代码。 Promises数组在调用“Promise.all”之前已完成(两个元素)。 但是“Promise.all”总是在执行小文件解析后触发。大文件解析总是在触发“Promise.al”之后执行


我不知道发生了什么。

promiseTransformModel()
需要返回承诺。
返回新承诺(…)
我刚才向您展示了位置:就在
新承诺之前
您如何从JavaScript中的函数返回内容?好的,现在很清楚了。谢谢