Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在HTTP请求中放置缓冲区?_Javascript_Http - Fatal编程技术网

Javascript 如何在HTTP请求中放置缓冲区?

Javascript 如何在HTTP请求中放置缓冲区?,javascript,http,Javascript,Http,我试图在请求中放入缓冲区,因为我有一个要导入的数据列表。我想要一个接一个的成功请求。我遇到的问题是,它等待上载请求的所有数据 以下是示例数据: [ { “联系人”:dsds@dsd.com", “收件人”:dsd@dsd.com", “发送日期”:“2020年8月7日17:05:04”, “主题”:“回购” }, { “联系人”:asd@ret.com", “收件人”:test@yahoo.com", “发送日期”:“2020年10月7日17:31:51”, “主题”:“商业” }, { “联系

我试图在请求中放入缓冲区,因为我有一个要导入的数据列表。我想要一个接一个的成功请求。我遇到的问题是,它等待上载请求的所有数据

以下是示例数据:

[
{
“联系人”:dsds@dsd.com",
“收件人”:dsd@dsd.com",
“发送日期”:“2020年8月7日17:05:04”,
“主题”:“回购”
},
{
“联系人”:asd@ret.com",
“收件人”:test@yahoo.com",
“发送日期”:“2020年10月7日17:31:51”,
“主题”:“商业”
},
{
“联系人”:we@sdf.com",
“收件人”:abc@yahoo.com",
“发送日期”:“07/09/2020 13:02:54”,
“主题”:“摇滚乐”
}
];
const createEngage=async(主体)=>{
const BASE_URL='/api/import'
var请求选项={
方法:“POST”,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”
},
身体:身体
};
获取(基本URL、请求选项)
.then(response=>response.text())
。然后(异步结果=>{
控制台日志(结果);
})
.catch(error=>console.log('error',error));
}

您可能想做的是在数据上循环,并使用
async/wait
在每次迭代中等待。异步函数的实现目前不会等待任何东西。相反,它应该
等待
fetch
请求,并使用
response.text()对正文进行解码

检查响应是否有错误,并将
fetch
请求包装在
try…catch
块中。如果发生错误,则将执行
catch
块。否则,请检查对象是否存在任何要包括的状态或错误

const data = [
  {
    "contacts": "dsds@dsd.com",
    "recipient": "dsd@dsd.com",
    "date_sent": "07/08/2020 17:05:04",
    "subject": "repurchase"
  },
  {
    "contacts": "asd@ret.com",
    "recipient": "test@yahoo.com",
    "date_sent": "07/10/2020 17:31:51",
    "subject": "biz"
  },
  {
    "contacts": "we@sdf.com",
    "recipient": "abc@yahoo.com",
    "date_sent": "07/09/2020 13:02:54",
    "subject": "rock"
  }
];

大家好,欢迎来到SO。你能详细说明一下你的缓冲区是什么,你想做什么,还有什么不起作用。尽可能具体。Hi-Emiel,我尝试一次发布1个数据。如果1个数据成功,它将继续。一个数据失败。弹出窗口将发出警报。非常感谢。嗨@trincot!!我想把它拿回来。我不知道发生了什么事。感谢manThanks@Emiel Zuurbier的帮助!!如果答案回答了您的问题并解决了您的问题,请随意接受。
const BASE_URL = '/api/import'

/**
 * Sends a request for each individual item.
 */
const createEngage = async body => {
  const requestOptions = {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body
  };
  try {
    const response = await fetch(BASE_URL, requestOptions);
    if (!response.ok) {
      alert('Your request has failed');
      return null;
    }
    const text = await response.text();
    return text;
  } catch(error) {
    alert('Your request caused an error');
  }
};

/**
 * Loop over each item and call createEngage.
 * Wait for the request to finish and continue.
 */
const createMultipleEngages = async data => {
  for (const item of data) {
    const result = await createEngage(item); // This will make the loop wait every time.
    console.log(result);
  }
};

// Call the function and start looping.
createMultipleEngages(data);