Вы обновляете состояние вне обратного вызова завершения http-запроса, поэтому состояние будет обновлено до завершения http-запроса, т.е. this.setState
вызывается сразу после запуска http-запроса, а не после его завершения. Вам нужно переместить this.setState({cities : getCities})
в обратный вызов resp.on('end', ...)
, например:
resp.on('end', () => {
for (let i = 0; i < JSON.parse(data).length; i++)
getCities += JSON.parse(data)[i].address.city + '\n';
console.log(getCities);
this.setState({cities : getCities}); // <-- update state here once http request has completed
});
Хорошо, я предполагаю, что являюсь просто немым. Я понял это.
В событии RowDataBound просто добавьте следующее условное выражение:
if (myGridView.EditIndex == e.Row.RowIndex)
{
//do work
}
У меня сложилось впечатление, что MSMQ был создан для совместимости с продуктом IBM MQ. Если это , вы можете вызвать MQGET с таймаутом и вообще не беспокоиться о опросе.
Просто получите сообщение из очереди с двухсекундным таймаутом (например). Если он там был, обработайте его. Затем либо выйдите из службы, если хотите, либо вернитесь в MQGET с ожиданием.
Это означает, что ваша служба не будет без необходимости потреблять процессорное время,