本文是自己的理解,如果有错误的地方,还请各路大神指出

首先说下我最常用的 Promise

getHandlePickupQrPromise() {// 定义返回 Promise对象// Promise接收一个回调函数 (success,error)=>{} return new Promise((resolve, reject) => {getPickupQr({str: JSON.stringify({ type: "order_consume", order_id: this.orderId })})((err, res) => {if (err) {// 出现错误回调 抛出 并返回错误信息
        reject(err);} else {if (res.data.errno === 0) {// 返回成功回调 抛出 并返回成功数据
          resolve(res.data.data.base64);} else {reject(new Error(res.data.errmsg));}}});});
}getHandlePickupQrPromise().then((base64) => {// .then 成功的回调,参数是一个回调函数,用来执行拿到成功数据做之后的处理
  console.log(base64)
}).catch((err) => {// .catch 失败的回调,参数是一个回调函数,用来执行拿到失败数据做之后的处理
  console.log(err)
});

ES7 async await

// async 定义的函数会返回一个promise对象
async function test() {return 123;
}test().then(val => {console.log(val);// 123
});

实例

let initPromise = () => {return new Promise((resolve, reject) => {setTimeout(() => {reject("success")}, 3 * 1000);})
}//async 必须包含 await 或者理解 await 必须出现在 async 函数内部,不能单独使用。
async function init() {//await 后面可以跟任何的JS 表达式// await 如果没有返回结果就不会继续走下面的 if elselet data = await initPromise().catch(err => {// catch 出现错误的值 做接受到错误的处理
    console.log(err)})if (data) {console.log("有值了")} else {console.log(data)}
}
init()

本人才疏学浅,如有不对的地方,还望大神指点一二

转载于:https://www.cnblogs.com/BeautifulBoy/p/9862240.html

我理解的 js 异步成长总结相关推荐

  1. js 异步执行_js执行过程你了解多少?

    来公众号:「九零后重庆崽儿」找我,一起学前端. 本文首发在: js执行过程你了解多少? - 重庆崽儿brand的个人主页​www.brandhuang.com 文章自己整理自网络,如有问题欢迎在知乎或 ...

  2. 理解JS异步编程(一)

    js是单线程的.按照这个理解的话,js在执行代码时,代码将顺序执行,上一句代码执行完才能执行下一句代码. 完全顺序执行的问题:如果上一句代码执行时间很长,下一句代码还是要等待上面的执行完毕才可执行,这 ...

  3. linux进程退出所有tcp数据才发送,深入理解Node.js 进程与线程(8000长文彻底搞懂)...

    前言 进程与线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少.本篇文章除了介绍概念,通过Node.js 的角度讲解进 ...

  4. JS异步编程之callback

    为什么 JS 是单线程? 众所周知,Javascript 语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务 ...

  5. JS异步模式与Promise模式

    JS异步模式与Promise模式 - 转 引子 异步模式在web编程中变得越来越重要,对于web主流语言Javascript来说,这种模式实现起来不是很利索,为此,许多Javascript库(比如 j ...

  6. promise 浏览器实现的源码_【大前端01-01】函数式编程与JS异步编程、手写Promise...

    [简答题]一.谈谈你是如何理解JS异步编程的,EventLoop.消息队列都是做什么的,什么是宏任务.什么是微任务? 如何理解JS异步编程 众所周知JavaScript语言执行环境是"单线程 ...

  7. JS 异步编程及常考面试题

    JS 异步编程及常考面试题 并发(concurrency)和并行(parallelism)区别 涉及面试题:并发与并行的区别? 异步和这小节的知识点其实并不是一个概念,但是这两个名词确实是很多人都常会 ...

  8. js 异步执行_JS Asynchronous — JS 异步编程极简史

    Asynchronous JS 异步编程极简史,这个故事网上已经很多人有了自己的讲述. Event Loop 解释了 Node.js 为何以及如何实现单线程服务模型和 Event Loop.对于 JS ...

  9. js 异步执行_JS异步执行机制——事件循环(Event Loop)

    JS异步执行机制--事件循环(Event Loop) 本文首发地址: 前端基础 | JS异步执行机制--事件循环(Event Loop)​www.brandhuang.com 先祭出一段代码,你清楚它 ...

最新文章

  1. OpenCV在Linux下的编译安装(Ubuntu )
  2. 匿名函数的this指向为什么是window?
  3. oracle冷备份 代码,Oracle冷备份和恢复自动产生sql源代码
  4. 判断一组多选框至少有一个被选中_想不想拥有自己的篆刻印章?那就PS一个吧...
  5. jQuery中的几个模块总结
  6. 把变量赋值给寄存器_散装 vs 批发谁效率高?变量访问被ARM架构安排的明明白白...
  7. alloca函数的风险_alloca的函数范围中的goto是否有效?
  8. c语言程序设计数据存储方案,c语言程序设计“第02章数据的存储及运算.ppt
  9. FILEUTILS 介绍
  10. mid php,mid是什么格式的文件
  11. java 中高级面试题_Java中高级面试题
  12. 深度学习中的深度是指什么_什么是深度学习
  13. android 悬浮球简书,Android-悬浮窗效果FloatingView
  14. 【转发】相似性度量学习及其在计算机视觉中的应用
  15. mysql 性能优化方向
  16. [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本
  17. NOIP2008 ISBN号码(一桶水)【A005】
  18. 为html添加footbar,foobar2000界面组件添加设置方法
  19. Aura component cache clear set
  20. ICT的圣杯(二):数字生活的另类想象

热门文章

  1. 计算机图形学真实绘图实验报告,计算机图形学实验报告.doc
  2. 计算机组成原理作业1王诚,计算机组成原理 王诚 董长洪 宋佳兴
  3. 万年历插件软件测试,万年历软件测试报告
  4. java excel读取操作,Java读取Excel并操作
  5. 网络推广公司网站该如何针对主页的优化工作?
  6. 网络推广——网络推广专员面对网站收录异常要学会多角度分析
  7. 动态规划走楼梯_动态规划问题为什么要画表格?
  8. c 语言 循环队列,循环队列C语言
  9. java 找不到工程文件_类加载器找不到文件求帮助
  10. 光滑噪声数据常用的方法_九大常用数据分析方法汇总