用JavaScript 实现一个简单的 Promise 并打印结果

简介: 用 JavaScript 实现一个简单的 Promise 并打印结果

以下是一个用 JavaScript 实现的简单 Promise 并打印结果的示例代码:

class MyPromise {
   
  constructor(executor) {
   
    this.status = 'pending';
    this.value = undefined;
    this.reason = undefined;

    const resolve = (value) => {
   
      if (this.status === 'pending') {
   
        this.status = 'fulfilled';
        this.value = value;
      }
    };

    const reject = (reason) => {
   
      if (this.status === 'pending') {
   
        this.status = 'ejected';
        this.reason = reason;
      }
    };

    try {
   
      executor(resolve, reject);
    } catch (error) {
   
      reject(error);
    }
  }
}

// 创建一个 Promise 实例
const myPromise = new MyPromise((resolve, reject) => {
   
  setTimeout(() => {
   
    resolve('Promise 成功了!');
  }, 1000);
});

// 监听 Promise 的状态变化
myPromise.then((result) => {
   
  console.log(result);
}).catch((error) => {
   
  console.error(error);
});
相关文章
|
13天前
|
JSON 前端开发 JavaScript
在 JavaScript 中,如何使用 Promise 处理异步操作?
通过以上方式,可以使用Promise来有效地处理各种异步操作,使异步代码更加清晰、易读和易于维护,避免了回调地狱的问题,提高了代码的质量和可维护性。
|
19天前
|
JSON 前端开发 JavaScript
浅谈JavaScript中的Promise、Async和Await
【10月更文挑战第30天】Promise、Async和Await是JavaScript中强大的异步编程工具,它们各自具有独特的优势和适用场景,开发者可以根据具体的项目需求和代码风格选择合适的方式来处理异步操作,从而编写出更加高效、可读和易于维护的JavaScript代码。
22 1
|
1月前
|
前端开发 JavaScript 开发者
JavaScript 中的异步编程:深入了解 Promise 和 async/await
【10月更文挑战第8天】JavaScript 中的异步编程:深入了解 Promise 和 async/await
|
1月前
|
前端开发 JavaScript 小程序
JavaScript的ES6中Promise的使用以及个人理解
JavaScript的ES6中Promise的使用以及个人理解
18 1
|
2月前
|
前端开发 JavaScript
JavaScript中的Promise:简化异步编程
JavaScript中的Promise:简化异步编程
|
2月前
|
Web App开发 前端开发 JavaScript
js之 Promise | 12-8
js之 Promise | 12-8
|
1月前
|
前端开发 JavaScript UED
深入了解JavaScript异步编程:回调、Promise与async/await
【10月更文挑战第11天】深入了解JavaScript异步编程:回调、Promise与async/await
17 0
|
2月前
|
前端开发 JavaScript
ES6新标准下JS异步编程Promise解读
ES6新标准下JS异步编程Promise解读
36 3
|
1月前
|
前端开发 JavaScript 开发者
深入理解JavaScript中的Promise:用法与最佳实践
【10月更文挑战第8天】深入理解JavaScript中的Promise:用法与最佳实践
58 0
|
2月前
|
前端开发 JavaScript
JavaScript Promise-2
JavaScript Promise-2
27 3