Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 链接axios请求_Javascript_Redux_Axios - Fatal编程技术网

Javascript 链接axios请求

Javascript 链接axios请求,javascript,redux,axios,Javascript,Redux,Axios,问题 我使用axios向API发布多个请求,这些请求到达API的顺序很重要。即使请求以正确的顺序发送,它们在API层上的处理顺序也是错误的(响应以错误的顺序发回) e、 我先发送请求A,然后发送B,但先收到响应B,然后发送A 我目前正在做什么 const requests = request.map(req => { return post<void>(url, params) .then(response => { console.log(`

问题

我使用axios向API发布多个请求,这些请求到达API的顺序很重要。即使请求以正确的顺序发送,它们在API层上的处理顺序也是错误的(响应以错误的顺序发回)

e、 我先发送请求A,然后发送B,但先收到响应B,然后发送A

我目前正在做什么

const requests = request.map(req => {

  return post<void>(url, params)
    .then(response => {
       console.log(`response sent`);
    })
    .catch(err => {
       console.log(`Response not sent`, err);
    });

});

await Promise.all(requests);
const requests=request.map(req=>{
返回帖子(url,参数)
。然后(响应=>{
log(`response sent`);
})
.catch(错误=>{
log(`Response not sent`,err);
});
});
等待承诺。所有(请求);

您必须创建严格有序的数组来解决问题。
请参考以下内容:

const [first, ...others] = request

const makeRequest = ({ url, params }) => post<void>(url, params)
  .then(response => {
    console.log(`response sent`)
  })
  .catch(err => {
    console.log(`Response not sent`, err)
  })

const requests = others.reduce((promise, req) => {
  return promise.then(() => makeRequest(req))
}, makeRequest(first))

await requests
const[first,…others]=请求
constmakerequest=({url,params})=>post(url,params)
。然后(响应=>{
console.log(`response sent`)
})
.catch(错误=>{
日志(`Response not sent`,err)
})
const请求=其他。减少((承诺,请求)=>{
返回承诺。然后(()=>makeRequest(req))
},makeRequest(第一个))
等待请求
如果成功,这将把每个请求链接到上一个请求上


注意:我假设
url
params
是请求上的值,因为我在代码中看不到它们来自哪里。

这将帮助您解决问题。只需将B req放入
中,然后
的A!如何知道数组是否严格有序?第二,我想我没有说清楚。如果我先发送请求A,然后发送请求B,我知道A在发送请求B之前已经被API处理过,这一点很重要。例如,如果我这样做了,请等待post(APIpath、params)等。这将确保在发布下一个请求之前收到响应。