Dotcpp  >  编程教程  >  JavaScript基础语法及数据类型  >  JS异步编程—Promise

JS异步编程—Promise

点击打开在线编译器,边学边练

Promise:Promise是ES6引入的一种异步编程方式。通过Promise可以更好地组织和控制异步操作。一个Promise对象代表一个尚未完成但预计会在未来完成的操作,并可以用链式调用的方式处理成功和失败的结果。这样可以避免回调地狱,并提供了更好的错误处理机制。

这里是从服务器获取数据的简单示例:

// 创建一个Promise对象并返回
function fetchData() {
  return new Promise((resolve, reject) => {
    // 模拟异步操作,比如发送 ajax 请求
    setTimeout(() => {
      const data = { id: 1, name: 'John Doe' };
      // 假设异步操作成功,将结果传递给 resolve 函数
      resolve(data);
      // 假设异步操作失败,将错误信息传递给 reject 函数
      // reject('Error fetching data');
    }, 2000);
  });
}
// 使用Promise来获取数据,并处理结果
fetchData()
  .then((data) => {
    console.log('成功获取数据', data);
    // 对获取到的数据进行处理
  })
  .catch((error) => {
    console.log('获取数据失败', error);
    // 处理错误情况
  });

在这个示例中,我们定义了一个fetchData函数,它返回一个Promise对象。在这个Promise对象的执行器函数中,我们模拟了一个异步操作(使用setTimeout模拟延迟2秒),在异步操作完成时,我们调用resolve函数将操作结果传递给后续的处理函数。

然后,我们使用该Promise对象调用.then()方法来处理异步操作的结果。第一个参数是一个处理已解决状态的回调函数,当异步操作成功时会被调用,并将操作结果作为参数传递给它。第二个参数是一个处理已拒绝状态的回调函数,当异步操作失败时会被调用,并将错误信息作为参数传递给它。

在这个示例中,假设异步操作成功,我们通过console.log输出了成功获取数据并对数据进行处理。如果异步操作失败,则会通过console.log输出获取数据失败,并进行相应的错误处理。



本文固定URL:https://www.dotcpp.com/course/1313

JavaScript教程
第一章 JavaScript入门
第二章 JavaScript基础语法及数据类型
第三章 JavaScript函数
第四章 JavaScript类
第五章 JS高级教程
第六章 JS Window
第七章 JS库
Dotcpp在线编译      (登录可减少运行等待时间)