Как разрешить массив обещаний? - PullRequest
0 голосов
/ 16 января 2019

У меня проблема с массивом обещаний.

const customs = this.state.customElements.map(async el => {
      if (el.type === 'paragraph') {
        return somePlainObject;
      } else {
        //uploading an image
        await axios.post(url, el.image, {
          headers: {
            'Content-Type': el.image.type
          }
        });
        return someObject;
      }
    });

И это возвращает мне массив обещаний. Я пытаюсь разрешить их с помощью Promise.all (), но, похоже, это не работает.

Promise.all(customs).then(() => {
      console.log('then', customs);
      const objectForDatabase = {
        title: this.state.inputs.title,
        subTitle: this.state.inputs.subTitle,
        content: this.state.inputs.content,
        mainImg: uploadConfig.data.url,
        customs
      };
      console.log('object for database', objectForDatabase);
    });

Оба файла console.logs в then все еще регистрируют массив обещаний. Почему это происходит?

1 Ответ

0 голосов
/ 16 января 2019

Результат от обещаний передается в качестве аргумента функции обратного вызова .then(), но вы его не используете. Попробуйте что-то вроде этого:

Promise.all(customs).then((results) => {
      console.log('then', results);
      // ...
});
...