Простой, если между двумя строками нет [дублировать]

Еще один подход к возврату значения из асинхронной функции - передать объект, который сохранит результат от асинхронной функции.

Вот пример того же:

var async = require("async");

// This wires up result back to the caller
var result = {};
var asyncTasks = [];
asyncTasks.push(function(_callback){
    // some asynchronous operation
    $.ajax({
        url: '...',
        success: function(response) {
            result.response = response;
            _callback();
        }
    });
});

async.parallel(asyncTasks, function(){
    // result is available after performing asynchronous operation
    console.log(result)
    console.log('Done');
});

Я использую объект result для хранения значения во время асинхронной операции. Это позволяет получить результат даже после асинхронного задания.

Я использую этот подход много. Мне было бы интересно узнать, насколько хорошо этот подход работает, когда задействован результат обратно через последовательные модули.

23
задан Marius Bancila 23 September 2014 в 16:29
поделиться

3 ответа

CompareTo игнорирует определенные символы:

static void Main(string[] args)
{
    var a = "asdas"+(char)847;//add a hidden character
    var b = "asdas";
    Console.WriteLine(a.Equals(b)); //false
    Console.WriteLine(a.CompareTo(b)); //0
    Console.WriteLine(a.Length); //6
    Console.WriteLine(b.Length); //5

   //watch window shows both a and b as "asdas"
}

(Здесь символ, добавленный к a, - U+034F, Объединение Grapheme Joiner.)

Debug mode [/g1]

Результат CompareTo не является хорошим индикатором ошибки в Equals. Наиболее вероятной причиной вашей проблемы являются скрытые символы. Вы можете проверить длину, чтобы быть уверенным.

Для получения дополнительной информации см. этот .

21
ответ дан brz 28 August 2018 в 09:07
поделиться

Вы можете попробовать использовать перегрузку String.Equals, которая принимает параметр типа StringComparison. Например:

myCert.Thumbprint.Equals(certificateThumbprint, StringComparison.[SomeEnumeration])

Где [SomeEnumeration] заменяется одной из следующих перечисленных констант:

 - CurrentCulture
 - CurrentCultureIgnoreCase
 - InvariantCulture
 - InvariantCultureIgnoreCase
 - Ordinal
 - OrdinalIgnoreCase

Ссылка на документацию MSDN найдена здесь здесь . enter image description here [/g2]

2
ответ дан AperioOculus 28 August 2018 в 09:07
поделиться

Иногда, когда мы вставляем данные в базу данных, он хранит пробелы типа «вопрос». И когда вы попытаетесь сравнить его с «вопросом», он вернет false. Поэтому мое предложение: проверьте значение в базе данных или используйте метод Trim ().

В вашем случае попробуйте: mycert.Thumbprint! = Null & amp; & amp; & amp; & amp; & amp; mycert.Thumbprint.trim (). equals (certificateThumbprint.trim ())

Я думаю, что он вернет true, если какая-либо запись будет существовать.

0
ответ дан Subhash 28 August 2018 в 09:07
поделиться
Другие вопросы по тегам:

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