JavaScript运用asyncAdd方法实现异步

837 ℃

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://m.ipkd.cn/webs_2342.html

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

dedecms安装到子目录,如何把uploads默认在根目录
帝国CMS7.0功能之专题大更新,功能更强大,制作
织梦dedecms点击次数标签的调用[field:click/]
Three.js中文文档官网介绍
帝国cms6.6功能之新增专题属性自定义字段功能