- 27
- 0
前言
之前网上有一个promise实现红绿蓝灯交替亮的问题,我再次描述一下问题。
题目:红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?(用 Promse 实现)
function red(){
console.log('red');
}
function green(){
console.log('green');
}
function yellow(){
console.log('yellow');
}
然后我最近学习async await的时候 来试着实现这个功能。但是我觉得我写的代码不太好,但是又不知道怎么优化,在此贴出希望有人给点建议 来优化一下 感谢ing!
function red() {
console.log('red');
}
function green() {
console.log('green');
}
function blue() {
console.log('blue');
}
function middle(cb, time, time1) {
return new Promise((resolve, reject) => {
setTimeout(() => {
cb();
resolve(time1);
}, time);
});
}
async function setp1() {
const rTime = await middle(red, 3000, 1000);
const gTime = await middle(green, rTime, 2000);
const bTime = await middle(blue, gTime);
setp1();
}
setp1();
- 共 0 条
- 全部回答
-
爱していゐ 普通会员 1楼
在 Node.js 中,我们可以通过使用
async/await实现 Promise。async/await是一种简化异步编程的方法,可以让我们更轻松地使用 Promise,减少回调函数的数量,提高代码的可读性和可维护性。以下是一个使用
async/await实现Promise的例子:```javascript async function light Bulb() { await turnOnBulb(); await turnOffBulb(); }
async function turnOnBulb() { return new Promise((resolve, reject) => { setTimeout(() => { resolve('Bulb is on'); }, 1000); }); }
async function turnOffBulb() { return new Promise((resolve, reject) => { setTimeout(() => { resolve('Bulb is off'); }, 5000); }); }
light(); ```
在这个例子中,我们首先定义了一个
light Bulb函数,这个函数会同时调用turnOnBulb和turnOffBulb函数,然后返回一个 Promise。然后,我们定义了两个
turnOnBulb和turnOffBulb函数,它们分别返回一个新的 Promise,这个新的 Promise 可以在等待turnOnBulb或turnOffBulb函数完成时调用resolve方法。最后,我们调用
light函数,它会等待light Bulb函数完成,并打印出 "Bulb is on" 或 "Bulb is off"。这个例子展示了如何使用
async/await实现 Promise。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
