riefuchi220 / poke

0 stars 0 forks source link

async await #7

Open riefuchi220 opened 5 months ago

riefuchi220 commented 5 months ago

async function customFetch(url) { try { const response = await fetch(url); return { status: response.status, url: response.url, ok: response.ok }; } catch (error) { console.error('Error fetching URL:', url, error); throw error; } }

async function findValidImageUrl(baseTime) { const endTime = new Date(baseTime.getTime() - 70 * 60000); let currentTime = new Date(baseTime);

while (currentTime >= endTime) { // URLを動的に生成 let formattedTime = formatDateForUrl(currentTime); let url = http://example.com/${formattedTime}/image1.jpg;

try {
  const result = await customFetch(url);
  if (result.ok && result.status === 200) {
    console.log('Found valid URL:', result.url);
    return result.url;
  }
} catch (error) {
  console.error('Failed to fetch:', url, error);
}

currentTime = new Date(currentTime.getTime() - 5 * 60000);

}

console.log('No valid URL found within the time range.'); return null; }

function formatDateForUrl(date) { return date.toISOString().replace(/[:-]/g, '').slice(0, 12); }

// 使用例 const observationDateTime = new Date(); // 現在の日時を観測日時とする findValidImageUrl(observationDateTime);