FileReader, проверяя контрольную сумму для изображения с SparkMD5, обещает - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь подсчитать контрольную сумму с помощью библиотеки SparkMD5, я правильно прочитал ArrayBuffer из файла, с помощью FileReader, и я передаю ArrayBuffer моей новой функции:

countMD5Hash = function(data){
    return new Promise ((resolve,reject) => {
        let res = null;

        res = SparkMD5.ArrayBuffer.hash(data)

        if(res){
             resolve(res)
        }
    });
};

Когда я пытаюсь вызвать countMD5Hashкак и выше, он возвращает undefined, но когда я пытаюсь console.log в этой функции без разрешения, он записывает правильную контрольную сумму. Как сделать, чтобы эта функция разрешала ответ с подсчитанной контрольной суммой?

1 Ответ

1 голос
/ 06 ноября 2019

Решение обещания не о возврате значения. Чтобы использовать значение resovled, вы должны использовать then следующим образом:

countMD5Hash(data).then(result => {
    // do whatever you want with the result
})

Однако, если вы используете countMD5Hash в функции async, вы также можете использовать await следующим образом:

let handle = async function(data) {
    // this waits for the promise to fulfill (or reject! don't forget to deal with exceptions!)
    // and puts the resolved value into hash
    let hash = await countMD5Hash(data); 
    // do whatever you want with hash
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...