django 承诺.然后不等待响应保存

a1o7rhls  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(151)

我首先发送一个POST请求,向表ORDER添加一个新位置,在完成该请求后,它再向表ORDER_PRODUCT发送一个POST请求,以将上一个订单与某些产品关联起来。
如果我把这两个帖子请求分开,然后手动启动它们,那么一切都很好。

const orderHandler = () => {
  setError('')

  token
    ? axios
        .post(
          'http://localhost:8000/order/',
          {
            notes: notes,
            price: quantPrice,
            city: city,
            street: street,
            zipcode: zipcode,
          },
          {
            headers: {
              Authorization: 'Token ' + token,
            },
          },
        )
        .then((response) => {
          console.log(response.data.id, 'wielki chuj')
          setOrderid(response.data.id)
        })
        //.then((response)=>setOrderid(response.data.id ))
        .then(() => console.log(orderid))
        .then(() => {
          cartItems.map((j) =>
            axios.post(
              'http://localhost:8000/orderproduct/',
              {
                order: orderid,
                product: j.id,
                quantity: j.quant,
              },
              {
                headers: {
                  Authorization: 'Token ' + token,
                },
              },
            ),
          )
        })
        .catch((error) => {
          console.log(error.response.data.body)
          setError(error.response.data.body)
        })
    : setError('You must be logged in')
}
bvhaajcl

bvhaajcl1#

答案是直接将www.example.com传递response.data给第二个POST,而不是通过state。这是subparry建议的。

.then((response) => {
        cartItems.map((j) =>
          axios.post(
            'http://localhost:........

相关问题