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工作流
一个20岁丰满的女孩ComfyUI工作流
一艘来自工业时代的飞船ComfyUI工作流
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

jquery鼠标滑过图片边框特效(jquery.focus-follow插件)
利用canvas画几个好玩的星云物种
用canvas实现画板涂鸦效果
利用css3做一个动态loading效果
SVG路径动画效果
3d空间行走效果
利用CSS3做一个星级评分样式
css3结合svg做一个动态广告











