Что такое & ldquo; default & rdquo; в быстрых строковых данных: allowLossyCompression: [duplicate]

Краткий ответ: ваш метод foo() возвращается немедленно, а вызов $ajax() выполняется асинхронно после возврата функции . Проблема заключается в том, как и где сохранить результаты, полученные при вызове async, после его возврата.

В этом потоке было задано несколько решений. Возможно, самый простой способ - передать объект методу foo() и сохранить результаты в члене этого объекта после завершения асинхронного вызова.

function foo(result) {
    $.ajax({
        url: '...',
        success: function(response) {
            result.response = response;   // Store the async result
        }
    });
}

var result = { response: null };   // Object to hold the async result
foo(result);                       // Returns before the async completes

Обратите внимание, что вызов foo() ] все равно не вернут ничего полезного. Однако результат асинхронного вызова теперь будет сохранен в result.response.

42
задан LuckyLuke 28 July 2014 в 10:06
поделиться

1 ответ

Это не действительный код Swift, он генерируется «на лету».

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

Вы можете видеть похожие объявления для assert

func assert(condition: @auto_closure () -> Bool,
            _ message: StaticString = default,
                 file: StaticString = default,
                 line: UWord = default)

Где file по умолчанию #file (__FILE__ в Swift 1.x) и line по умолчанию установлено значение #line (__LINE__ в Swift 1.x).

В случае NSLocalizedString значением по умолчанию является "Localizable", ссылаясь на файл локализации по умолчанию Localizable.strings.

75
ответ дан Sulthan 31 August 2018 в 16:42
поделиться
Другие вопросы по тегам:

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