JavaScript Promise Tutorial – How to Resolve or Reject Promises in JShttps://www.freecodecamp.org/news/javascript-promise-tutorial-how-to-resolve-or-reject-promises-in-js/

Promise 是 JavaScript 中异步操作的重要组成部分。你可能认为 Promise 不是那么容易理解、学习和使用的。相信我,你并不孤单!

对于许多 Web 开发人员来说,Promise 具有挑战性,即使在与他们合作多年之后也是如此。

在本文中,我想尝试改变这种看法,同时分享我在过去几年中对 JavaScript Promise 的了解。希望你觉得它有用。

JavaScript 中的 Promise 是什么?

Promise是一个特殊的 JavaScript 对象。它在asynchronous(又名异步)操作成功完成后产生一个值,如果由于超时、网络错误等原因未能成功完成,则产生一个错误。

成功的调用完成由resolve函数调用指示,错误由reject函数调用指示。

你可以像这样使用 Promise 构造函数创建一个 Promise:

let promise = new Promise(function(resolve, reject) {    // Make an asynchronous call and either resolve or reject
});

在大多数情况下,promise 可以用于异步操作。但是,从技术上讲,您可以解决/拒绝同步和异步操作。

等等,我们没有callback异步操作的功能吗?

哦是的!那就对了。我们callback在 JavaScript 中有函数。但是,回调在 JavaScript 中并不是什么特别的东西。它是一个常规函数,在调用完成后产生结果asynchronous(成功/错误)。

“异步”这个词意味着将来会发生某些事情,而不是现在。通常,回调仅在执行网络调用、上传/下载内容、与数据库通信等操作时使用。

虽然callbacks很有帮助,但它们也有很大的缺点。有时,我们可能在另一个回调中包含一个回调,而另一个回调又在另一个回调中,依此类推。我是认真的!让我们通过一个例子来理解这个“回调地狱”。

如何避免回调地狱——PizzaHub 示例

让我们从 PizzaHub 订购 Veg Margherita 披萨

JavaScript Promise 教程 - 如何在 JS 中解决或拒绝 Promise相关推荐

  1. JavaScript 日期比较——如何在 JS 中比较日期

    日期是开发人员在创建实际应用程序时最常用的数据类型之一. 但通常,开发人员会在这种数据类型上苦苦挣扎,最终使用像 Moment.js 这样的日期库来完成简单的任务,这些任务不值得安装整个包所带来的大包 ...

  2. 【javascript基础——系列10】js中隐藏元素的几种方法以及代码

    系列文章 [javascript基础--系列1]前端页面ajax连接后台服务器传输数据 [javascript基础--系列2]前端页面axios连接后台服务器传输数据 [javascript基础--系 ...

  3. 如何在JS中应用正则表达式

    背景:在之前的随笔中写过C#中如何使用正则表达式,这篇随笔主要讲如何在js中应用正则表达式 如下代码: 1 $("#zhengze").click(function () { 2 ...

  4. vue js中解决二进制转图片显示问题

    一:问题 工作中碰到的问题,在处理接口返回的验证码图片时,由于返回的是encode编码代码,在js端获取到数据之后,通过函数encodeURI()来进行解码,之后可以通过在src中设置来实现图片显示: ...

  5. cad细等线体不显示_CAD技法大全,如何在CAD中解决好部分图元无法正常显示的问题 ?...

    CAD技法大全,CAD技法大全,如何在CAD中解决好部分图元无法正常显示的问题 ? 在导入CAD的时候,我们通常会遇到各种各样的问题,很多时候都不知道如何解决,这个时候不要着急,静下心来想想,自己以前 ...

  6. was服务器里面jar包_如何在was中解决jar包冲突

    如何在 was 中解决 jar 包冲突 大型的基于 WebSphere 的项目开发中,同一个 WebSphere Application Server (以下 简称 WAS ) 上会部署多个应用程序, ...

  7. PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿?

    PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿? 欢迎观看 Microsoft PowerPoint 教程,带大家学习 PowerPoint 的使用技巧,了解如何在 P ...

  8. dota2html颜色代码,技术向教程 如何在DotA2中使用彩色字体

    技术向教程 如何在DotA2中使用彩色字体 编译:M82A1炸菜 如何使用16进制编辑器对DotA2文字就行颜色编辑 需要:十六进制编辑器.记事本.控制台 1.打开steam平台 2.在游戏库中选择D ...

  9. xd怎么做页面滑动_XD教程 | 如何在XD中制作拖拽手势”

    原标题:XD教程 | 如何在XD中制作"拖拽手势" 今日主题:设计一个滑动交互 使用工具:Adobe XD 预计时长:1-2分钟 实用指数:★★★★★ 难度系数:★ 本期教程,我们 ...

最新文章

  1. 20个 css3 html5 设计工具
  2. inspinia前端模板怎样编写消息提示框点击确定后的回调方法
  3. 前端学习(1913)vue之电商管理系统电商系统之创建user分支并把代码推到码云
  4. android竖直和横向,如何在android中为纵向和横向模式定义不同的控件
  5. 苹果x和xsmax有什么区别_苹果手机不卡的真相是什么,安卓和iOS有本质区别
  6. 构建嵌入式linux系统_用于构建嵌入式Linux系统的4种工具
  7. C++ 变量和常量
  8. console.log()注意事项。
  9. 计算机标准差平方差怎么按,数学标准差公式
  10. 2018-04-24-c-gluttonous-snake 财务同比环比、SSH和SSM
  11. 边云协同,边缘云更出彩
  12. Python: 异常处理
  13. MSRA-TD500数据集坐标转换
  14. Linux2.6.33下ZC301USB摄像头使用教程
  15. 八码数 · 哈希+BFS
  16. matlab怎么标注极限,求助注释一段MATLAB极限腐蚀程序
  17. Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device
  18. 【成长必备】我为什么推荐你写博客?愿你多年以后成为你想成为的样子。
  19. SOLIDWORKS建立参数化模型基本原则
  20. xp系统蓝屏代码7b_如何解决U盘安装WindowsXP系统出现蓝屏并提示oxoooooo7b错误代码...

热门文章

  1. python完成“疯狂填词”程序。
  2. Vulnhub靶场——Hacker_Kid-v1.0.1
  3. 社群裂变的低成本玩法及其能力是什么?
  4. 利用MATLAB确定幅值裕度和相角裕度:margin命令
  5. java 对象能跨类吗,java_SE类和对象
  6. 超出的字用省略号来代替
  7. 计算机单元格复制,2010年职称计算机考试:单元格区域的复制和移动
  8. 那个信奉“人沉静时智慧升起”的思想者
  9. linux内核-X86CPU对中断的硬件支持
  10. 欧几里德 和 拓展欧几里德算法