В моем приложении React мне нужно последовательно вызывать 2 разные функции для каждой записи в результатах моей карты.
путем вызова функции getOrderLine () и относительно количества записей, я хочу последовательно вызвать функции getItemInfo () и createOrderLine () для каждой записи в результатах карты.
ожидаемое поведение приведенного ниже кода (мы предполагаем, что у нас есть 2 записи):
1-вызов getItemInfo ()
2-вызов createOrderLine ()
3- вызов getItemInfo ()
4-вызов createOrderLine ()
, но у меня было это:
1-вызов getItemInfo ()
2-вызов getItemInfo ()
3- вызов createOrderLine ()
4-вызов createOrderLine ()
я попытался использовать asyn c и обещать, но мне не удалось решить проблему.
ниже приведен источник кода, спасибо Вам за помощь.
getOrderLine = () => {
axios
.post(
this.hostname +`getPoLine.p?id=` + this.id
)
.then(response => {
response.data.ProDataSet.tt_order_line.map( item=>{
this.setState({
quantity: item.quantity,
price: item.price
},()=>{this.getItemInfo()})
})
})
}
getItemInfo = () => {
/* some code */
this.setState({
order_code: "value 1",
alloc_qty: 20,
},()=>{this.createOrderLine()})
}