Serial Request
Use method
Since method is a PromiseLike instance, you can use await to wait for the request to succeed.
const todoList = await todoListGetter;
const todoDetail = await todoDetailGetter(todoList[0].id);
Use useRequest
Serial requests also have two modes.
Method 1
Let the first request be automatically sent, and the second request is triggered in the onSuccess callback of the first request to complete the serial request, as shown below:
//
const { data: todoList, onSuccess } = useRequest(todoListGetter);
const { data: todoDetail, send: sendTodoDetail } = useRequest(
todoId => todoDetailGetter(todoId),
{ immediate: false }
);
// Get the list first, then get the details of the first todo
onSuccess(event => {
sendTodoDetail(event.todoList[0].id);
});
Method 2
Use the send function returned by the useRequest function. Calling send will return a usable promise object.
// First, let them not automatically send requests
const { send: sendList } = useRequest(todoListGetter, { immediate: false });
const { send: sendTodoDetail } = useRequest(todoId => todoDetailGetter(todoId), {
immediate: false
});
// Use the promise object returned by the send function
const serialRequest = async () => {
const todoList = await sendList();
const todoDetail = await sendTodoDetail(todoList[0].id);
// Serial request completed, continue processing business...
};
Is using alova in your project? please tell me!