用户:
蓝矮爱乐查看:0 回复:1 评论:0 创建时间:2022-04-26T19:00:16
/*直接await sleep(等待的毫秒)不就行了吗
对了,还要放在异步函数(async function)里面
接下来弄个玩家进入游戏后每隔1秒就会变大小的*/
world.onPlayerJoin(async function/*这就是async function*/({entity})=>{
/*如果把await指令放在同步函数里面,你就会得到一个语法错误:
await is only valid in async function*/
while(true){
await sleep(1000)
entity['player']['scale']=Math.random()
}
})
如果想要在其他的JavaScript的程序软件里面用await sleep呢?
ReferenceError: sleep is not defined
所以,等待的话只能用
setTimeout(function(){
//等待1000毫秒后,执行这里面的代码
},1000)
setTimeout是个好方法,但是要多次等待的话,那就不知道有多麻烦了
那么,请你新认识一个东东,它的名字叫Promise
/*Promise是创建一个异步的方法
用new Promise()就可以调用
*/
new Promise((resolve,reject)=>{})
/*Promise这个函数有两个参数(resolve和reject)
resolve()用于完成这个异步,并执行下一个代码
reject()用于在异步执行失败时发出报错
那么,就可以这样用:*/
function sleep(timeMS){//由于等待事件要很长的一段代码,所以用函数来缩短,每次调用时都会执行
return new Promise((resolve)=>{//返回新建一个异步
setTimeout(()=>{//等待timeMS秒后,结束这个异步
resolve()
},timeMS)
})
};
(async()=>{//10秒倒数计时器
for(var c=0;c<10;c++){
console.log(10-c);
await sleep(1000)//调用sleep函数,等待1秒
}
})()