【js异步编程】同步:指步骤再一个控制流序列中按照顺序执行
异步:一个异步过程的执行将不再与原有的序列由顺序关系,异步就是从主线程发射一个子线程来完成任务
promise:是一个ES6提供的类,目的是更加优雅的书写复杂的异步任务
构建Promise对象
new Promise(function (resolve,reject) {
//要做的事情。。。
})
Promise构造函数只有一个参数,是一个函数,这个函数在构造之后会直接被异步运行,所以被称为起始函数,起始函数包含两个参数resolve和reject.当Promise被构造时,起始函数会被异步执行;resolve和reject都是函数,其中resolve代表一切正常,reject是出现异常时所调用的。
Promise对象,代表一个异步操作,有三种状态:pending(进行中),resolve(已完成,又称fulfilled)和reject(已失败)
Promise类有.then(),.catch()和.finally()三个方法,这三个方法的参数都是一个函数,.then()可以将参数中的函数添加到当前Promise的正常执行序列,.catch()是设定Promise的异常处理程序,.finally(),是在Promise执行的最后一定执行的序列。.then()传入的函数会按顺序依次执行,有任何异常都会直接跳到cath序列
resolve()中可以放置一个参数用于向下一个then传递一个值,then中的函数也可以返回一个值传递给then。但是,如果then中返回的是一个Promise对象,那么下一个then将相当于对这个返回的Promise进行操作
reject()参数中一般会传递一个异常给之后的catch函数用于处理异常
推荐阅读
- Javascript 的优缺点,以及重点
- 还在写SQL做SAP二开(通过RFC调用NetWeaver,让HANA数据库操作更可靠)
- fetch简单封装request.js
- JavaScript的事件循环机制浅析
- js 数组去重的方式
- JavaScript 数组方法filter和reduce
- 关于promise学习
- 【JS30-Wes Bos】30天原生JS挑战——总结
- 【JS30-Wes Bos】自定义视频播放器 11