JavaScript学习Day32笔记
2021/7/2 20:51:31
本文主要是介绍JavaScript学习Day32笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Day32笔记
一、Promise异步编程
-
Promise是异步编程的一种解决方案。
-
从语法上讲,
Promise
是一个内置对象(构造函数),自身上有resolve
、reject
等方法,原型上有then
、catch
等方法。new Promise(function(resolve,reject){})
-
Promise对象提供了简洁的API,使得控制异步操作更加容易,避免了回调地域的问题。
二、Promise的三种状态
- pending => 正在请求
- rejected => 已失败
- fulfilled => 已成功
三、Promise的特点
- Promise对象的状态改变只有两种可能: pending(正在请求) => rejected(已失败)、 pending(正在请求) => fulfilled(已成功)。
- 只要上面两种情况发生,状态就确定了,不会再改变,一直保持这个结果,这时就被称为resolved(已定型)。
- Promise对象的状态不受外界影响,只有异步操作可以决定Promise的状态,Promise的英文意思是 “承诺” ,表示其他任何操作都无法改变这个状态。
四、Promise的使用
- resolved:异步请求成功时,通过
resolved
回调函数返回Promise的结果。 - rejected:异步请求失败时,通过
rejected
回调函数返回Promise的结果。 - then:对应
resolved
回调函数,通过then
回调函数返回 resolved的结果。 - catch:对应
rejected
回调函数,通过then
回调函数返回 rejected的结果。
五、Promise的基本操作
// 以异步读取文件为例,先引入fs const fs = require('fs') // 使用promise对异步进行封装 const promiseObj = new Promise(function(resolved,rejected){ fs.readFile('文件路径',function(err,data){ // 文件读取失败时 if(err){ // 用rejected返回失败结果 rejected(err); return } // 用resolved返回成功结果 resolved(data); }) } // 使用then处理resolved返回的data内容 promiseObj.then(function(data){ console.log(data) }) // 使用catch处理rejected返回的err内容 promiseObj.catch(function(err){ console.log(err) })
六、Promise的链式写法(简写)
const fs = require('fs') new Promise((resolved,rejected) => { fs.readFile('文件路径',(err,data) => { if(err){ rejected(err); return } resolved(data); }) }).the( data => console.log(data) ).catch( err => console.log(err) )
这篇关于JavaScript学习Day32笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29RocketMQ底层原理资料详解:新手入门教程
- 2024-11-29RocketMQ源码资料解析与入门教程
- 2024-11-29[开源]6.1K star!这款电视直播源神器真的太赞啦!
- 2024-11-29HTTP压缩入门教程:轻松提升网页加载速度
- 2024-11-29JWT开发入门指南
- 2024-11-28知识管理革命:文档软件的新玩法了解一下!
- 2024-11-28低代码应用课程:新手入门全攻略
- 2024-11-28哪些办公软件适合团队协作,且能够清晰记录每个阶段的工作进展?
- 2024-11-28全栈低代码开发课程:零基础入门到初级实战
- 2024-11-28拖动排序课程:轻松掌握课程拖动排序功能