我的程序使用我的player.ts 文件中使用的全局变量。我将此播放器文件导入到侧边栏组件中,现在出现应用程序错误。问题是应用程序正在加载侧边栏组件,然后在player.ts 中完成获取请求。我首先在 app.module 中初始化player.ts 文件。如果在那里我可以提示应用程序在加载组件之前等待?我尝试使用await javascript关键字,但似乎所有组件和导入的文件都是从app.moudle异步加载的。
应用程序模块.ts
import { Player } from './player';
import { SidebarComponent } from './sidebar/sidebar.component';
@NgModule({
declarations: [
AppComponent,
SidebarComponent,
],
imports: [
BrowserModule,
AppRoutingModule,
HttpClientModule,
],
providers: [Player],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(private player: Player) {
console.log("first console.log yeee");
this.processPlayer()
}
async processPlayer(){
let tester1 = await this.player.loadPlayer();
}
}
Run Code Online (Sandbox Code Playgroud)
侧边栏.component.ts
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Player } from '../player';
@Component({ …Run Code Online (Sandbox Code Playgroud) 我将 GLTF 模型(9mb)加载到 ThreeJS 中。加载速度肯定很慢。在我的 PC 上加载大约需要 4-5 秒,在 iPhone 上加载大约需要 11 秒。如何加快渲染时间?我的 PC 和 iPhone 从 ThreeJS 网站加载示例的速度比我的项目更快。我的项目只加载了一个对象,所以我觉得它应该比 ThreeJS 网站上的示例加载得更快。
我的示例项目位于此处@http: //flowolfsworld.com/
代码
var ourObj;
var ourObj2;
// Instantiate a loader
var loader = new THREE.GLTFLoader();
// Optional: Provide a DRACOLoader instance to decode compressed mesh data
var dracoLoader = new THREE.DRACOLoader();
dracoLoader.setDecoderPath( '/js/draco/' );
loader.setDRACOLoader( dracoLoader );
let scene, camera, renderer, stars, starGeo;
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000)
camera.position.z = 25;
//renderer …Run Code Online (Sandbox Code Playgroud)