
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,我们会在看到邮件的第一时间内为您处理!

Google趋势:一款由谷歌公司推出的免费在线工具
在线电报码查询官网:提供在线查询和解码电报码的功能
推荐一款免费可商用仿宋字体——汉字之美仿宋GBK