带有类型脚本的递归函数

时间:2017-07-07 16:01:37

标签: javascript node.js typescript recursion promise

我正在玩承诺,我遇到了异步递归承诺的问题。

场景是我需要检查函数内的令牌验证,如果令牌过期,我需要再次调用该函数。 以下是我到目前为止所做的代码:

module.exports={
 frstFun:()=>{...
 },
 secondFun:(param)=>{
  return new Promise((resolve,reject)=>{
  request({
   url:url+'myapi',
   qs:{q:param,acc_token:token},
   method:'GET',
   },function(err,response,body){
    if(error){
    //here i need to call secondFun() method..
    }
    });
  })
  }

};

我尝试调用this.secondFun(),但是它给出了错误secondFun()不是方法。

1 个答案:

答案 0 :(得分:0)

我不确定递归重试是否是执行此操作的最佳方法,但您可以将函数定义从exports对象中拉出来:

let secondFun = (param) => {
    return new Promise((resolve, reject) => {
        request({
            url: url + 'myapi',
            qs: { q: param, acc_token: token },
            method: 'GET',
        }, function (err, response, body) {
            if (err) {
                // secondFun(...)
            }
        });
    })
};

module.exports = {
    frstFun: () => { ... },
    secondFun: secondFun 
};