Как использовать Promise.Все в react-native

#react-native

#react-native

Вопрос:

Я использую promise.Все, чтобы дождаться завершения методов перед визуализацией компонента.

Я использовал вот так :

       constructor(props) {
        super(props);
        this.controllAll();
      }

    controllAll() {
    Promise.all([this.callFetch()])
      .then(([fetchResponse]) => {
          console.log('finished', fetchResponse);
      })
      .catch(err => {
        console.log('Mistake:', err);
      });
    }

    callFetch() {
fetch('url', {
        method: 'POST',
        headers: new Headers({
                      Accept: 'application/json',
                    'Content-Type': 'application/json', // <-- Specifying the Content-Type
            }),
       })
        .then((response) => response.text())
        .then(leaders => {

            this.PutImagesToObject(leaders );
        });

    }
  

Я хочу дождаться завершения метода callfetch() перед рендерингом компонента. Но когда я запускаю, сначала в режиме отладки я вижу «готово».

Не нужно ждать завершения метода CallFetch (), чтобы показать мне «готово»

Комментарии:

1. callFetch не возвращает обещание, поэтому ждать нечего.

2. Что я должен добавить?

3. A return . Кроме того, нет причин использовать Promise.all , просто вызовите `then.

4. Можете ли вы добавить код, потому что я не знаю, как использовать promise, который я только что увидел в Интернете и использовал

Ответ №1:

Попробуйте добавить оператор return

 callFetch() {
  return fetch('url', {
  ...