Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理资产的异步加载?立即访问返回未定义_Javascript_Asynchronous_Three.js_Loading - Fatal编程技术网

Javascript 如何处理资产的异步加载?立即访问返回未定义

Javascript 如何处理资产的异步加载?立即访问返回未定义,javascript,asynchronous,three.js,loading,Javascript,Asynchronous,Three.js,Loading,我正在使用LoadJSON()函数将资产加载到一个数组中,该函数使用三个.ObjectLoader()(资产是JSON文件)。如果在调用LoadJSON()后不久尝试访问数组的成员,它将返回undefined,并且我的程序无法运行。一些研究表明,这些资产正在异步加载,这就是为什么我不能立即访问阵列中的资产(它们仍在加载)。为了证实这一点,我做了一个测试,在短时间延迟后访问了阵列的成员,它们正常工作 我的问题:是否有办法确保在执行任何其他操作之前加载资产?我查看了THREE.ObjectLoade

我正在使用LoadJSON()函数将资产加载到一个数组中,该函数使用三个.ObjectLoader()(资产是JSON文件)。如果在调用LoadJSON()后不久尝试访问数组的成员,它将返回undefined,并且我的程序无法运行。一些研究表明,这些资产正在异步加载,这就是为什么我不能立即访问阵列中的资产(它们仍在加载)。为了证实这一点,我做了一个测试,在短时间延迟后访问了阵列的成员,它们正常工作

我的问题:是否有办法确保在执行任何其他操作之前加载资产?我查看了THREE.ObjectLoader代码,但似乎找不到解决方案(尽管我可能没有找到)。设置时间延迟似乎是一个糟糕/不一致的解决方案


加载函数具有回调

var loader = new THREE.OBJLoader( manager );

loader.load( 'obj/male02/male02.obj', function ( object ) {
    //this happens after load object being what is loaded.
} );

有关更多信息,请参见

应该有一个回调。