ES6—43:Promise
发布日期:2021-06-30 15:19:07 浏览次数:2 分类:技术文章

本文共 1509 字,大约阅读时间需要 5 分钟。

基本使用

Promise封装读取文件

Promise封装AJAX请求

const p = new Promise((resolve,reject) => {
// 1. 创建对象 const xhr = new XMLHttpRequest(); // 2. 初始化 xhr.open("GET","https://api.apiopen.top/getJoke"); // 3. 发送 xhr.send(); // 4. 绑定事件,处理响应结果 xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status <= 300) {
resolve(xhr.response); } else {
reject(xhr.status); } } }});p.then(function(value) {
console.log(value);},function(reason) {
console.log(reason);});

Promise.prototype.then 方法

then方法的返回值分以下三种情况:

  1. 返回非Promise对象
  2. 返回Promise对象(resove状态)
  3. 返回Promise对象(reject状态)

Promise对象的catch方法

此方法是当Promise对象的状态为reject时,调用的方法,参数只是一个函数。

使用Promise读取三个文件中的内容

// 首先,引入fs模块const fs = require('fs');const p = new Promise((resolve,reject) => {
fs.readFile("./test.md",(err,data) => {
resolve(data); });});p.then((value) => {
return new Promise((resolve,reject) => {
fs.readFile("./木言人.md",(err,data) => {
resolve([value,data]); }); });}).then((value) => {
return new Promise((resolve) => {
fs.readFile("./读书有感.md",(err,data) => {
value.push(data); resolve(value); }); });}).then((value) => {
console.log(value.toString());});

Promise.allSettled()方法

  • 参数是一个数组。
  • 这个数组的每一个元素都是一个Promise对象
  • 该方法返回的始终是一个成功的Promise对象,这个对象的结果包含了参数数组中的每一个Promise对象的返回状态和值。

转载地址:https://jiapy.blog.csdn.net/article/details/114382100 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ES6—44:Map数据结构
下一篇:ES6—42:生成器

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月21日 18时50分05秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章