返回
代码在手,红绿灯我有:程序员用Promise模拟红绿灯
前端
2023-11-11 11:14:59
在车水马龙的大都市中,红绿灯是必不可少的交通工具。它能有效地控制车流,保证行人和车辆的安全。但你知道红绿灯是如何工作的吗?在计算机编程中,有一种叫做Promise的技术,它可以模拟红绿灯交替闪烁的过程。
了解Promise
Promise是一个JavaScript对象,它代表一个异步操作的最终完成或失败及其结果值。Promise对象有三个状态:
- Pending(等待):表示异步操作正在进行中。
- Fulfilled(已完成):表示异步操作已成功完成,并有结果值。
- Rejected(已拒绝):表示异步操作已失败,并有错误信息。
利用Promise模拟红绿灯交替闪烁
我们先来看一下红绿灯交替闪烁的过程:
- 红灯亮1秒。
- 黄灯亮1秒。
- 绿灯亮1秒。
- 重复步骤1到3。
现在,我们利用Promise来模拟这个过程:
function createRedLightPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('红灯亮1秒');
}, 1000);
});
}
function createYellowLightPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('黄灯亮1秒');
}, 1000);
});
}
function createGreenLightPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('绿灯亮1秒');
}, 1000);
});
}
function runTrafficLight() {
createRedLightPromise()
.then(result => {
console.log(result);
return createYellowLightPromise();
})
.then(result => {
console.log(result);
return createGreenLightPromise();
})
.then(result => {
console.log(result);
runTrafficLight();
})
.catch(error => {
console.error(error);
});
}
runTrafficLight();
在这个代码中,我们定义了三个函数,分别用于模拟红灯、黄灯和绿灯。每个函数返回一个Promise对象,代表异步操作的最终完成或失败及其结果值。
在runTrafficLight
函数中,我们调用createRedLightPromise
函数来模拟红灯,然后调用createYellowLightPromise
函数来模拟黄灯,最后调用createGreenLightPromise
函数来模拟绿灯。
每当一个Promise对象完成时,它的结果值就会传递给下一个Promise对象的then
函数。这样,我们就能实现红绿灯交替闪烁的效果。
总结
通过本文,我们学习了如何利用Promise来模拟红绿灯交替闪烁的过程。Promise是一个非常强大的技术,它可以让我们更轻松地处理异步操作。