在等待反应之后初始化状态

问题描述:

我有一个向服务器发送数据的异步提交功能。现在我想每当提交用户停留此页面,但状态恢复到初始形式。 这里是我的代码:在等待反应之后初始化状态

save = async() => { 
.... 
await rest.post('some_where', {data}) 
// here 
// this.setState({cart: [], selectedItems: []}); 
} 

我想正好发送请求休息状态后,重新初始化;不是在此之前。 我该怎么做?

您是否尝试过使用then() Promise方法?

then()方法返回一个Promise。它最多需要两个参数:Promise的成功和失败情况的回调函数。

这意味着你可以这样做:

save = async() => { 
    .... 
    await rest.post('some_where', {data}).then(() => { 
    this.setState({cart: [], selectedItems: []}); 
    }); 
} 

如果出现南,你的承诺失败,你可以做的另一套逻辑。或许,这显示在你的UI:

save = async() => { 
    .... 
    await rest.post('some_where', {data}).then(() => { 
    this.setState({cart: [], selectedItems: []}); 
    },() => { 
    console.error("Post failed!"); 
    this.setState({didFail: true}); 
    }); 
} 

后调用返回一个承诺,你需要添加一个解析器回调,然后你可以调用的setState({})方法。在你的情况下,setState方法将不会从服务器更新数据。