асинхронный обратный вызов response-select не вызывается

Я использую компонент AsyncSelect response-select и пытаюсь разрешить его с помощью обратного вызова с помощью следующего кода:

loadOptions(inputValue, callback) {
  this.props.asyncFunctionWithCallback(resp => {
    callback(resp);
  });
}

asyncFunctionWithCallback() - это асинхронная функция, которая получает обратный вызов, который вызывается при выполнении обещания:

asyncFunctionWithCallback(doneCallback) {
  // Call some async code
  fetch(url).then(response => { 
    doneCallback(response) 
  }
}

Я пытаюсь вызвать response-select callback() изнутри asyncFunctionWithCallback()обратный вызов, но кажется, что он не вызывается, поскольку asyncFunctionWithCallback() постоянно зовут.

Думаю, я не передаю обратный вызов должным образом, но не могу понять, что делаю не так.

1 ответ

Вам нужно будет передать значение res.json из выборки в обратный вызов, например

asyncFunctionWithCallback(doneCallback) {
  // Call some async code
  fetch(url)..then(res => res.json())then(response => { 
    doneCallback(response) 
  }
}

Однако, поскольку у вас уже есть асинхронный код, лучше использовать перспективный подход для loadOptions.

loadOptions(inputValue) {
  return this.props.asyncFunctionWithCallback();
}

asyncFunctionWithCallback() {
  // Call some async code
  return fetch(url)..then(res => res.json());
}
Другие вопросы по тегам