web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

JavaScript运用asyncAdd方法实现异步

569 ℃
     

JavaScript运用asyncAdd方法实现异步,下面给大家详细介绍一下实现思路!

思路分析:

考虑到外部参数长度不固定,使用剩余运算符接收所有传入的参数;

考虑到asyncAdd中的异步操作,将其封装为Promise的实现,即caculate函数;

考虑到asyncAdd实际只能一次接收两个数字进行计算,使用循环的形式将多个参数分别传入;

考虑到通过循环处理异步操作的顺序问题,使用async/await来保证正确的执行顺序,且async函数的返回值正好符合sumPromise类型的要求。

const cash: any = {};
function isUndefined(target: any) {
  return target === void 0;
}

// 通过 ES6 的剩余运算符(...) 接收外部传入长度不固定的参数
async function sum(...nums: number[]) {
  let res: any = 0;
  const key = nums.join('+');
  if (!isUndefined(cash[key])) return cash[key];
  for (const n of nums) {
    res = await caculate(res, n);
  }
  cash[key] = res;
  return res;
}
// 封装 Promise 
function caculate(num1: number, num2: number) {
  return new Promise((resolve, reject) => {
	// 调用 asyncAdd 实现加法
    asyncAdd(num1, num2, (err: any, rs: number) => {
	  // 处理错误逻辑
      if (err) {
        reject(err);
        return;
      }
	  // 向外部传递对应的计算结果
      resolve(rs);
    });
  })
}

Javascript有哪些方法可以实现继承

web前端中head中常用的标签有哪些?

javascript三元运算符是什么?(常用语法介绍)

介绍几种对象转换为数组的javascript方法

javascript根据相同id合并形成child子数组(支持低版本浏览器)

标签: asyncAdd, JavaScript方法, script

上面是“JavaScript运用asyncAdd方法实现异步”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2342.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > js
本文共计754个字,预计阅读时长6分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款完全免费的 Windows 软件卸载、清理工具——HiBit Uninstaller
下一篇: 推荐一款可免费商用圆体字库——江城圆体
x 打工人ai神器