返回

代码在手,红绿灯我有:程序员用Promise模拟红绿灯

前端

在车水马龙的大都市中,红绿灯是必不可少的交通工具。它能有效地控制车流,保证行人和车辆的安全。但你知道红绿灯是如何工作的吗?在计算机编程中,有一种叫做Promise的技术,它可以模拟红绿灯交替闪烁的过程。

了解Promise

Promise是一个JavaScript对象,它代表一个异步操作的最终完成或失败及其结果值。Promise对象有三个状态:

  • Pending(等待):表示异步操作正在进行中。
  • Fulfilled(已完成):表示异步操作已成功完成,并有结果值。
  • Rejected(已拒绝):表示异步操作已失败,并有错误信息。

利用Promise模拟红绿灯交替闪烁

我们先来看一下红绿灯交替闪烁的过程:

  1. 红灯亮1秒。
  2. 黄灯亮1秒。
  3. 绿灯亮1秒。
  4. 重复步骤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是一个非常强大的技术,它可以让我们更轻松地处理异步操作。