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

3d文字动画效果
js+css3做一个灯泡开灯关灯效果
SVG路径动画效果
利用CSS3做一个星级评分样式
css3画弹珠,可以滚动!
利用js+css3做一个小鱼游泳特效
黑客入侵效果代码











