代码结构如下:
大致功能是,我开始有一个数字A从0递增,当A等于B时清除定时器,但现在,我的B的值要从接口里获取到,然后就当A===B这条就不成立了,虽然B已经改变了。
constructor(props) {
super(props);
this.state = {
A: 0,
B: 20
};
}
tick() {
this.setState((prevState) => ({
A: prevState.A + 2
}));
console.log(this.state.B);
if (this.state.A === this.state.B) {
clearInterval(this.interval);
}
}
componentWillMount(){
CookieInfo.getIsLoggedIn()?
puck.request('/api', {
type: 'jsonp',
data: {
}
})
.then(res => {
const {ok,status,statusText,body} = res;
this.setState({
B:body.data.score
});
})
.catch(err => {
const { message, res, stack } = err;
const { ok, status, statusText, body } = res;
// console.log(body);
}):
'';
}
componentDidMount() {
this.interval = setInterval(() => this.tick(), 50);
}
A===B这条就不成立了,虽然B已经改变了
A===B这条为什么不成立呢?是因为你网络请求太慢了?然后A早已超过这个值了?