JavaScript运用asyncAdd
方法实现异步,下面给大家详细介绍一下实现思路!
思路分析:
考虑到外部参数长度不固定,使用剩余运算符接收所有传入的参数;
考虑到asyncAdd
中的异步操作,将其封装为Promise
的实现,即caculate
函数;
考虑到asyncAdd
实际只能一次接收两个数字进行计算,使用循环的形式将多个参数分别传入;
考虑到通过循环处理异步操作的顺序问题,使用async/await
来保证正确的执行顺序,且async
函数的返回值正好符合sum
是Promise
类型的要求。
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根据相同id合并形成child子数组(支持低版本浏览器)
标签: asyncAdd, JavaScript方法, script
上面是“JavaScript运用asyncAdd方法实现异步”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。
当前网址:https://m.ipkd.cn/webs_2342.html
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!