Передача реквизита в функцию из пакета NPM

Это дизайнерское решение было принято давно, давным-давно. Более 21 года назад, задолго до появления .NET, или когда-либо рассматривалась семантика IDisposable. Класс .NET Mutex является классом обертки для базовой поддержки операционной системы для мьютексов. Конструктор pinvokes CreateMutex , метод WaitOne () pinvokes WaitForSingleObject () .

Обратите внимание на возвращаемое WAIT_ABANDONED значение WaitForSingleObject (), это тот, который генерирует исключение.

Дизайнеры Windows поместили твердое правило, в котором поток, который владеет мьютексом, должен вызывать ReleaseMutex () до его выхода. И если это не значит, что это очень сильное указание на то, что поток неожиданно завершен, как правило, через исключение. Это означает, что синхронизация потеряна, очень серьезная проблема с потоками. Сравните с Thread.Abort (), очень опасным способом прервать поток в .NET по той же причине.

Разработчики .NET никоим образом не изменяли это поведение. Не в последнюю очередь потому, что нет никакого способа проверить состояние мьютекса, кроме как выполнить ожидание. Вы должны вызывать ReleaseMutex (). И обратите внимание, что ваш второй фрагмент не является правильным; вы не можете называть это мьютексом, который вы не получили. Он должен быть перемещен внутри тела оператора if ().

1
задан baileyhaldwin 17 February 2019 в 17:47
поделиться

2 ответа

В документации сказано, что formatter принимает функцию, поэтому вы должны либо дать ей одну из предопределенных функций, либо функцию, которую вы определяете сами.

Важно, что это функция обратного вызова , поэтому вам не нужно вызывать ее или отправлять параметры. Компонент <TimeAgo ... вызовет функцию с параметрами, перечисленными в документации, для получения окончательной отформатированной строки.

Одна из их функций форматирования:

import frenchStrings from 'react-timeago/lib/language-strings/fr'
import buildFormatter from 'react-timeago/lib/formatters/buildFormatter'
0
ответ дан Andrei 17 February 2019 в 17:47
поделиться

Вы даете функцию опоре formatter, которую react-timeago будет использовать внутри.

Пример

<TimeAgo
  date={this.state.time}
  formatter={(value, unit, suffix) => `${value} ${unit} ${suffix}`}
  live={true}
/>
0
ответ дан Tholle 17 February 2019 в 17:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: