Обещание AWS SDK JavaScript с обратным вызовом httpUploadProgress - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь получить httpUploadProgress с помощью AWS S3 SDK JavaScript.Используя эти строки, я могу видеть ожидаемый результат с прогрессом загрузки, но как получить то же самое с помощью Promise (), я использую это в браузере в качестве внешнего ресурса JS.

Рабочий пример:

    function uploadFile(){
        var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
        var fileChooser = document.getElementById('file');
        var file = fileChooser.files[0];
        if (file) {
            console.log();
            var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
            var params = {Key: file.name, ContentType: file.type, Body: file};
            s3.upload(params,opts).on('httpUploadProgress', function(evt) {
            console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
            }).send(function(err, data) {
                console.log(err);
                alert("File uploaded successfully.");
            });
        }
        return false;
    }

То же самое я хочу с обещаниями.

function uploadFile(){
        var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
        var fileChooser = document.getElementById('file');
        var file = fileChooser.files[0];
        if (file) {
            console.log();
            var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
            var params = {Key: file.name, ContentType: file.type, Body: file};
            var promise = s3.upload(params,opts).promise();
            promise()
               .then(function(data){}, function(error){})
        }
        return false;
    }
...