首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能用npm指数退避进行重试

不能用npm指数退避进行重试
EN

Stack Overflow用户
提问于 2021-06-23 12:27:14
回答 1查看 233关注 0票数 1

Node,如您所见,我试图在响应失败时调用相同的url。我在这里做了什么错事

代码语言:javascript
复制
import * as request from 'request';

var url = 'https://www.abcxyz.com';

export class ServiceClass {
    public getRequest(): any {
        request.get(url, null, (error: any, meta: any, response: any) => {
            console.log("1111", response);
        })
    }

}

import { ServiceClass } from './GithubApiService';
import { backOff } from "exponential-backoff";

const service = new ServiceClass();

async function test() {
    const response = await backOff(() => service.getRequest(),
        { numOfAttempts: 3, maxDelay: 2000, retry: (e: any, attemptNumber: 1) => true })
};

test();
EN

回答 1

Stack Overflow用户

发布于 2021-06-23 12:31:58

基于https://www.npmjs.com/package/exponential-backoff文档,您的getRequest没有返回允诺值,因此应该这样做:

代码语言:javascript
复制
export class ServiceClass {
    public getRequest(): any {
        return new Promise((resolve, reject) => {
          request.get(url, null, (error: any, meta: any, response: any) => {
            if (error) return reject(error);
            resolve(response);
          });
        })
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68099814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档