В конечном итоге я сохраняю [обещание объекта] при попытке сохранить ссылку на мою базу данных - PullRequest
0 голосов
/ 08 декабря 2018

Я загружаю изображения в облачный каталог и сохраняю ссылки из загрузки в моей базе данных mongo.

код

function createProjects(cb) {
    async.parallel([
       function(callback) {
          projectCreate('Project name', '5bdee2734fbaaf1f1804f497',  cloudinary.v2.uploader.upload("circuit.jpg", function(error, result){console.log(result.url, error)} ), callback);},

Вместо сохранения ссылки на изображение, '[Обещание объекта] 'сохранено.Я понимаю, что это связано с асинхронной природой javascript.

Моя новая цель - запустить облачную функцию и вернуть ссылку до того, как данные будут сохранены в базе данных.

новый код подхода

function(callback) {
      projectCreate('NEW ONE two', '5bdee2734fbaaf1f1804f497', new Promise(function(resolve, reject){
            cloudinary.v2.uploader.upload("circuit.jpg", 
                                            function(error, result){
                                          //resolve(result.url);
                                          resolve(result);
                                        })}).then(function(value) 
                                        {return(value);
                                        }) , callback);
                                         }

Это приводит к следующей ошибке

FINAL ERR: ValidationError: pictures.0.data: преобразование в строку не выполнено для значения"Promise {}" в пути "data" Я попробовал несколько подходов из похожих проблем на stackoverflow, они также закончились ошибкой или сохранением [Promise] объекта.

Буду признателен за любую помощь, которую вы предлагаете.

...