English 中文(简体)
• 如何在 Java文中成功获得Fetch?
原标题:How to Synchronously Wait for a Successful Fetch in JavaScript?

I m trying to perform a synchronous loop until a fetch to a URL is successful. Here s what I ve attempted:

let res = null 

fetch("https://jsonplaceholder.typicode.com/users/1").then((response)=>{
  return response.json();
}).then((data)=>{
  res = data;
  return data
})

while(!res){
  console.log(`${Date.now()} fetching`);
}

However, it doesn t work because the callback is not executed, leading to res = null. How can I modify this to perform a synchronous loop until a fetch to a URL is successful?

问题回答

在法典中,我喜欢你篡改Promises的权力。

我有两种办法可以帮助你的法典工作。

  1. Leverage the power of async/await syntax:
async function letsRock() {
   try {
      const res = await fetch("https://jsonplaceholder.typicode.com/users/1")
      // The rest of your code ...
    
      return res // Return the response (Optional)

   } catch(e) {
     // Code in case that the request fails
   }
}

注:尽可能使用<代码>const。

Documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

  1. Write your code inside the .then statement:
fetch("https://jsonplaceholder.typicode.com/users/1").then((response)=>{
  return response.json();
}).then((data)=>{
  // Use your data here this block defines that the function already was executed successfully 
})

<>说明: 功能守则或<代码>.then <>/code>栏将继续执行,一旦回复回代码内,也将执行。

I hope it works for you!

最好!

我修改了你的法典。 一经尝试。

let res = null;
async function fetchData() {
    while(!res) {
        await fetch(url)
              .then((response)=>{
                   return response.json();
               }).then((data)=>{
                   res = data;
               })
    }
}

fetchData();




相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签