var loader=new THREE.FileLoader();
var data;
loader.load('test.txt',function (value) {
data=value
});
console.log(data);
我想用FileLoader来读取一个本地txt文件,然后用里面的数据生成点云,但是编译器告诉我data 这个变量undefined
这是什么情况?明明我已经在函数里面给它赋值了呀
var loader=new THREE.FileLoader();
var data;
loader.load('test.txt',function (value) {
data=value
});
console.log(data);
我想用FileLoader来读取一个本地txt文件,然后用里面的数据生成点云,但是编译器告诉我data 这个变量undefined
这是什么情况?明明我已经在函数里面给它赋值了呀
loader.load在执行完成,也就是读取本地txt文件成功后,才会去执行你的函数给data赋值,这个异步。
而console.log是同步,立马执行,此时data只是声明啦,还未赋值,js引擎会默认给它赋予undefined
async function main(){
var loader = new THREE.FileLoader();
var data = await new Promise((resolve)=> loader.load("test.txt", resolve))
console.log(data)
}
loader.load 估计是异步的, 要想写的同步的话要用 async await + promise