【问题标题】:Recursive function with type script带有打字稿的递归函数
【发布时间】:2017-12-12 00:21:26
【问题描述】:

我正在使用 Promise,但我遇到了异步递归 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() is not a method.

【问题讨论】:

标签: javascript node.js typescript recursion promise


【解决方案1】:

我不确定递归重试是否是执行此操作的最佳方法,但您可以将函数定义从 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 
};

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2019-04-09
    • 2017-09-07
    • 2021-12-19
    • 2021-12-15
    相关资源
    最近更新 更多