前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >假设本地机器无法做加减乘除法,需要通过远程请求让服务端来实现。

假设本地机器无法做加减乘除法,需要通过远程请求让服务端来实现。

作者头像
刘嘿哈
发布2022-10-25 14:20:35
2900
发布2022-10-25 14:20:35
举报
文章被收录于专栏:js笔记js笔记

以加法为例,现有远程API的模拟实现 addRemote

代码语言:javascript
复制
const addRemote = async (a, b) => new Promise(resolve => {
  setTimeout(() => resolve(a + b), 1000)
})

请实现本地的add方法,调用addRemote,能最优的实现输入数字的加法。 async function add(...inputs) {

代码语言:javascript
复制
    let sum=0;
    for(var i=0;i<inputs.length;i++){
       sum= await addRemote(sum,inputs[i])
    }
    return sum;
}

请用示例验证运行结果:

代码语言:javascript
复制
add(1, 2)
  .then(result => {
    console.log(result) // 3
  })

add(3, 5, 2)
  .then(result => {
    console.log(result) // 10
  })

add方法实现

代码语言:javascript
复制
async function add(...inputs) {
  // 你的实现
}

nodejs utils.promisify 接受error first的回调函数为参数异步函数转换为可以返回promise的函数

代码语言:javascript
复制
// fs.loadFile 使用演示
fs.loadFile('./xxx/x.md', (err, data) => {
  if(err) {
    console.log(err)
  } else {
    console.log(data)
  }
})

promisify函数包装后演示

代码语言:javascript
复制
// fs.loadFile('./xxx.md').then(data => {}).catch(err => {})
const loadFile = utils.promisify(fs.loadFile);
loadFile('./xxxx.md').then(data => {}).catch(err => {});

请实现

代码语言:javascript
复制
    // 请实现
    utils.promisify = function (fn) {
        return function (path) {
            return new Promise((res, rej) => {
                fn(path, (err, data) => {
                    if (err) {
                        res(err);
                    } else {
                        res(data);
                    }
                })
            })
        }
    };```
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • add方法实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档