асинхронный обратный вызов 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());
}