首页 > 编程语言 >[Javascript] Write Promise.all()

[Javascript] Write Promise.all()

时间:2024-10-18 14:47:54浏览次数:1  
标签:resolve const res Javascript Write Promise result data

Promise.myAll = function (promises) {
  let res, rej;
  const p = new Promise((resolve, reject) => {
    res = resolve;
    rej = reject;
  });
  let i = 0;
  let result = [];
  // since Promise.all can take any iterable as input
  // to check whether it has items or not, we have to
  // count items one by one, instead of using .length or .size
  for (const promise of promises) {
    const index = i;
    i++;
    Promise.resolve(promise).then((data) => {
      result[index] = data;
      i--;
      if (i === 0) {
        res(result);
      }
    }, rej);
  }
  if (i === 0) {
    return res([]);
  }
  return p;
};

const res = Promise.myAll([1, Promise.resolve(2), Promise.resolve(3), 4]);
res
  .then((data) => {
    console.log(data);
  })
  .catch((err) => {
    console.error(err);
  });

 

标签:resolve,const,res,Javascript,Write,Promise,result,data
From: https://www.cnblogs.com/Answer1215/p/18474286

相关文章

  • javascript渲染OFD的库
    目前使用javascript开发的OFD的渲染库主要有两个:ofd.js和liteofd,其中ofd.js开发比较早,liteofd是最近刚出现的js库。首先结论是ofd.js渲染效果没有liteofd好,因为ofd.js目前有一些效果没有支持,比如对字体没有比较好的解析和支持。liteofd相对ofd.js效果更好,并且提供的接口方法更多......
  • [Javascript] Write .call()
    Function.apply.myCall=function(ctx,...args){ctx=ctx===null||ctx===undefined?globalThis:Object(ctx);constfn=this;constkey=Sybmol("fn");//wedon'twantusercansee[Sybmol("key")]inFunctionpro......
  • ​Meteor:全栈JavaScript开发框架的先驱
    Meteor是一个功能强大且易用的全栈JavaScript框架,它简化了现代Web应用的开发流程,从数据库到用户界面都可以通过一套统一的技术栈来实现。无论你是构建实时应用还是想要一个快速的原型开发工具,Meteor都能为你提供完整的解决方案。本文将详细介绍Meteor的显著特性、使用方式......
  • JavaScript 数据类型转换全解析:转换为数值、字符串与布尔型
    目录非VIP用户可前往公众号“前端基地”进行免费阅读转换为数值型转换为数值型Number()函数parseInt()函数parseFloat()函数转换为字符串型转换方法toString()函数String()函数转换为布尔型转换方法Boolean()函数非VIP用户可前往公众号“前端基地”进行免......
  • JavaScript初级课程 variables
    下载node。1.申明变量variables.jsletmessage="Hello!";message="World";console.log(message);nodevariables.js2.申明不会变的变量constCOLOR_GREEN="green";console.log(COLOR_GREEN)3.数据类型DataTypes=[number,BigInt,string......
  • [转]Learn Power Platform Power Apps Dataverse Write a plug-in
    Learn PowerPlatform PowerApps Dataverse Writeaplug-inInthisarticleIPlugininterfacePluginBaseabstractclassServicesyoucanuseinyourcodePuttingitalltogetherShow2moreYoucancreate plug-ins byusingoneofthefollowingmetho......
  • JavaScript从零学起 —— 数据类型(进阶篇2)
    说明:此文章用作个人学习记录,若有任何问题或建议欢迎大家在评论区讨论文章目录前言一、Boolean(布尔值)1.定义2.实现3.用法示例4.常见问题与解决方法二、Undefined(未定义)1.定义2.实现3.常见问题与解决方法三、Null(空值)1.定义2.实现3.用法示例4.常见问题与......
  • JavaScript网页设计案例
    1.引言在前端开发中,JavaScript无疑是一个非常重要的语言。它不仅可以用于表单验证、动态内容更新,还能实现复杂的交互效果和动画。通过JavaScript,网页变得更加生动和富有互动性。本文将通过一个具体的网页设计案例,详细讲解如何使用JavaScript进行网页开发,包括准备工作、基础理......
  • 第147篇:开发中Promise的使用(async,await)
    好家伙, 0.错误描述今天在开发中犯了一个比较严重的错误对于Promise的错误使用 场景:微信小程序中展示搜索条件列表//API请求工具函数constapiRequest=(url,method='GET',headers={})=>{returnnewPromise((resolve,reject)=>{wx.request({......
  • 实验三: JavaScript数组与函数
    实验目的熟练掌握常用JavsScript的数组、自定义函数、作用域。实验内容数组定义及元素获取;数组的遍历;数组内容的增删改查;数组的排序;数组的反转、截取、合并、元素拼接函数的声明;函数的调用;匿名函数;作用域。实验步骤:数组定义及元素获取;数组的遍历;数组内容的增删改查......