Идентификационные файлы файлов SSIS с плоским файлом [дубликат]

Js - однопоточная.

Браузер можно разделить на три части:

1) Event Loop

2 ) Web API

3) Очередь событий

Событие Loop запускается вечно, т. Е. Тип бесконечного цикла. Очередь ожидания - это то, где вся ваша функция нажимается на какое-либо событие (пример: нажмите) this один за другим выполняется в очереди и помещается в цикл «Событие», который выполняет эту функцию и подготавливает ее для следующего после первого запуска. Это означает, что выполнение одной функции не начинается до тех пор, пока функция, перед которой она в очереди не будет выполнена цикл событий.

Теперь давайте подумаем, что мы поставили две функции в очереди, чтобы получить данные с сервера, а другой использует эти данные. Мы сначала нажали функцию serverRequest () в очереди, а затем применили функцию Data () , Функция serverRequest переходит в цикл событий и делает вызов на сервер, так как мы никогда не знаем, сколько времени потребуется для получения данных с сервера, поэтому ожидается, что этот процесс займет много времени, и поэтому мы заняли наш цикл событий, тем самым повесив нашу страницу, вот где Web API входит в эту роль, он принимает эту функцию из цикла событий и обращается к серверу, создающему цикл событий, так что мы можем выполнить следующую функцию из очереди. Следующая функция в очереди - useData (), которая идет в цикле, но из-за отсутствия данных отходы и выполнение следующей функции продолжаются до конца очереди (это называется Async-вызовом, то есть мы можем сделать что-то еще, пока не получим данные)

Предположим, что наша функция serverRequest () имела оператор возврата в код, когда мы возвращаем данные с сервера Web API, будет выталкивать его в очередь в конце очереди. По мере того, как он заканчивается в очереди, мы не можем использовать его данные, поскольку в нашей очереди нет функции, чтобы использовать эти данные. Таким образом, невозможно вернуть что-то из Async Call.

Таким образом, решение этой проблемы callback или обещают .

A Изображение из одного из ответов здесь, правильно объясняет использование обратного вызова ... Мы (функция, использующая данные, возвращаемые с сервера), чтобы вызвать вызывающий сервер.

 function doAjax(callbackFunc, method, url) {
  var xmlHttpReq = new XMLHttpRequest();
  xmlHttpReq.open(method, url);
  xmlHttpReq.onreadystatechange = function() {

      if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
        callbackFunc(xmlHttpReq.responseText);
      }


  }
  xmlHttpReq.send(null);

}

В моем коде он называется

function loadMyJson(categoryValue){
  if(categoryValue==="veg")
  doAjax(print,"GET","http://localhost:3004/vegetables");
  else if(categoryValue==="fruits")
  doAjax(print,"GET","http://localhost:3004/fruits");
  else 
  console.log("Data not found");
}

Прочитайте здесь новые методы в ECMA (2016/17) для создания асинхронного вызова (@Felix Kling Answer сверху) https://stackoverflow.com/a/14220323/7579856

1
задан marc_s 28 April 2015 в 11:41
поделиться

2 ответа

Помогите мне понять, как GETDATE () не существует на языке выражения SSIS в 2008 году.

enter image description here [/g0]

Тем не менее, я считаю, что использование системная переменная @[System::StartTime] предпочтительнее GET_DATE(). StartTime обеспечивает согласованный момент времени в течение всего пакета. Это всегда будет, когда пакет начнет выполнение. Сравните это со значением GETDATE (), которое прямо сейчас. Теперь. ТЕПЕРЬ. Каждый раз, когда вы проверяете это значение, оно может быть изменено. Это может вызвать проблемы при создании имени файла со второй точностью. Или если вы хотите сгруппировать все данные, которые были вставлены за один прогон. У вас будет дрейф в этих значениях, поэтому вы должны использовать запросы диапазона для идентификации всех данных в запуске X. Или вы можете использовать StartTime, который обновляется, когда пакет начинает работать, но остается постоянным в течение продолжительности.

6
ответ дан billinkc 24 August 2018 в 09:25
поделиться

Попробуйте следующее:

RIGHT( "00"+ (DT_WSTR, 2) DAY(GETDATE()),2)+RIGHT( "00"+ (DT_WSTR, 2) 
MONTH(GETDATE()),2)+(DT_WSTR, 4) YEAR(GETDATE())
0
ответ дан juzraai 24 August 2018 в 09:25
поделиться
Другие вопросы по тегам:

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