Ошибка типа: # <Promise>не повторяется - PullRequest
0 голосов
/ 29 октября 2018

Я пытался использовать promise.all для выполнения нескольких вызовов API, но по какой-то причине он выдавал следующую ошибку

TypeError: # не повторяется

Мое обещание довольно простое (вероятно, это второй раз, когда я использую Promise.all)

componentWillMount() {
    const id = this.props.location.pathname
    let axiosHome = axios.get('/home')
    let axiosUserData = axios.get("/profile/" + id)
    Promise.all(axiosHome,  axiosUserData).then(response => {
        console.log(response)
    }).catch(error => {
        console.log(error)
    })
  }

Вопрос: Есть идеи, почему я мог получить эту ошибку? Кроме того, может ли кто-то также объяснить, когда мы используем ключевое слово resolv с обещанием?

1 Ответ

0 голосов
/ 29 октября 2018

Promise.all принимает один аргумент, который представляет собой массив из Promise s - последующие аргументы отбрасываются. Итак, вместо этого передайте массив:

Promise.all([axiosHome,  axiosUserData])
  .then(...

когда мы используем ключевое слово разрешения с обещанием?

resolve - это не ключевое слово, это просто имя обычной функции, используемой при построении Promise:

const prom = new Promise((resolve, reject) => {
  // do some asynchronous stuff
  if (ok) resolve();
  else reject();
});

Когда Promise явно создан таким образом, позвоните resolve(), чтобы выполнить Обещание. (конечно, аргумент функции можно назвать как угодно, его не нужно называть resolve)

...