#javascript
Вопрос:
Узел, как вы можете видеть, я пытаюсь вызвать тот же URL-адрес при отсутствии ответа. Я делаю здесь что-то не так
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();
Ответ №1:
На основе https://www.npmjs.com/package/exponential-backoff документы ваш GetRequest не возвращает значение обещания, и должен, поэтому попробуйте сделать это так:
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);
});
})
}
}
Комментарии:
1. Как мы можем проверить, были ли начаты повторные слушания? Потому что я вижу, что запрос отклоняется с первой попытки
2. Изложите там некоторую логику, например
console.count('request');
, перед тем, как сделать запрос