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子数组(支持低版本浏览器)
上面是“JavaScript运用asyncAdd方法实现异步”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。
当前网址:https://ipkd.cn/webs_2342.html
workflows工作流
一颗柔和的水晶金字塔ComfyUI工作流
一只漂亮的孔雀的尾巴完全由披萨制成ComfyUI工作流
一颗巨型的木星ComfyUI工作流
一杯咖啡蒸汽形成云ComfyUI工作流
一张由表情符号组成的照片ComfyUI工作流
嘴唇丰满的漂亮女人
一个迷人而丰满的女巫和一只黑猫骑着飞天扫帚
一个极其美丽细致的女孩ComfyUI工作流
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

利用canvas画几个好玩的星云物种
js实现下雪特效
利用CSS3代码编写45款按钮效果
在线生成金属文字
一起去看流星雨(代码)
利用js+css3做一个小鱼游泳特效
jquery做一个漂亮挂墙动态时钟
做一个好玩的时钟翻牌效果







