Это также обрабатывает случай, когда путь преобразуется в не строковое значение путем преобразования его в строку. В противном случае .localeCompare
может потерпеть неудачу.
sortBy = (keys, isReverse=false) => {
this.setState(prevState => ({
files: prevState.files.sort((a, b) => {
const valueA = getValueAtPath(a, keys);
const valueB = getValueAtPath(b, keys);
if(isReverse) return valueB.localeCompare(valueA);
return valueA.localeCompare(valueB);
})
}));
}
function getValueAtPath(file, path) {
let value = file;
let keys = [...path]; // preserve the original path array
while(value && keys.length) {
let key = keys.shift();
value = value[key];
}
return (value || '').toString();
}
100-continue должно обрабатываться IIS. Есть ли причина, по которой вы хотите сделать это явно?
IIS обрабатывает 100.
Тем не менее, нет, это не два ответа. В HTTP, когда Expect: 100-continue входит в заголовки сообщений, клиент должен дождаться получения ответа перед отправкой содержимого.
Из-за того, как asp.net спроектирован, у вас мало контроль над выходным потоком. Любые данные, которые записываются в поток, автоматически помещаются в ответ 200 с фрагментированным кодированием всякий раз, когда вы сбрасываете, будь то режим буферизации или нет.
К сожалению, все это спрятано во внутренних методах по всему миру. place, и в результате, если вы полагаетесь на asp.net, как и MVC, вы практически не сможете его обойти.
Подождите, пока вы попытаетесь получить доступ к входному потоку без буферизации. Целый груз боли.
Себ
.NET framework по умолчанию всегда отправляет заголовок expect: 100-continue
для каждого сообщения HTTP 1.1. Это поведение можно программно контролировать для каждого запроса через свойство System.Net.ServicePoint.Expect100Continue
, например:
HttpWebRequest httpReq = GetHttpWebRequestForPost();
httpReq.ServicePoint.Expect100Continue = false;
Его также можно контролировать программно глобально:
System.Net.ServicePointManager.Expect100Continue = false;
... или глобально через конфигурацию:
<system.net>
<settings>
<servicePointManager expect100Continue="false"/>
</settings>
</system.net>
Спасибо Лэнсу Олсону и Филу Хааку за эту информацию.