I have the following code
import fetch, { Response } from "node-fetch"
import { joinCookieNameAndValue } from "../string-manipulation"
import item from "../../types/data-types/item"
const scan = (name: string, page: number): Promise<item | void> => new Promise(async (resolve, reject) => {
const itemsRes: Response = await fetch(`url`, {
method: "GET",
headers: {
Cookie: joinCookieNameAndValue("cookie-name", <string> process.env.COOKIE_VALUE)
}
})
if (!itemsRes.ok) {
return reject(new Error(`Could not fetch items: request failed with status code ${itemsRes.status}`));
}
const items: Array<item> = await itemsRes.json();
const item_: item | undefined = items.find(i => i.name == name);
if (items.length == 0) {
return resolve();
}
if (!item_) {
return scan(name, ++page);
}
resolve(item);
})
export default async (name: string) => scan(name, 1);
The promise above is awaited in another script but the code after it won't ever run as the promise never gets resolved even though the code inside the items.length == 0
if statement runs.