Delphi генератор UUID

Может кто-нибудь показать мне, как заставить исполнение ждать

Это неправильный вопрос. Вы не пытаетесь заставить казнить «ждать» или, по крайней мере, не должны этого делать. Вам просто нужно вызвать обратный вызов в нужном месте - внутри обратного вызова из s3.listObjectsV2(), а не снаружи.

function getThumbFileName(videoKey, callback) {
  ...
  s3.listObjectsV2(params, (err, data) => {
    if (err) {
      ...
    }

    var thumbsKey = data.Contents;
    // MaxKeys was 1 bc first thumbnail key is good enough for now. Therefore, only one iteration.
    thumbsKey.forEach(function (keys) {
      console.log('thumbKey = ' + keys.Key);
      urlKey = keys.Key;
    });

    callback(urlKey); // right
  });

  // wrong // callback(urlKey);

}

Как вы написали, обратный вызов срабатывает после того, как s3.getObjectsV2() начинает работать , а не после того, как завершает (вызывает собственный обратный вызов).

37
задан Mitch Wheat 28 February 2014 в 02:00
поделиться

3 ответа

program Guid;

{$APPTYPE CONSOLE}

uses
SysUtils;

var

Uid: TGuid;
Result: HResult;

begin
Result := CreateGuid(Uid);
if Result = S_OK then
   WriteLn(GuidToString(Uid));
end.

Скрытые CreateGuid () вызывает один из различных API в зависимости от платформы. Например, в Windows сейчас он вызывает UuidCreate .

66
ответ дан 27 November 2019 в 04:12
поделиться

Да TGUID, посмотрите этот пример

program Guid;

{$APPTYPE CONSOLE}

uses
SysUtils;

begin
  WriteLn(TGUID.NewGuid.ToString());
end.
0
ответ дан 27 November 2019 в 04:12
поделиться

Также, если вам нужен GUID для объявления интерфейса, нажмите ctrl+shift+g в редакторе кода, чтобы вставить GUID на каретке.

36
ответ дан 27 November 2019 в 04:12
поделиться
Другие вопросы по тегам:

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