the fetch of dva is used to access the network and the data has been returned successfully. Why does fetch return promise instead of the requested data
import fetch from "dva/fetch";
function parseJSON(response) {
return response.json();
}
function checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
return response;
}
const error = new Error(response.statusText);
error.response = response;
throw error;
}
/**
* Requests a URL, returning a promise.
*
* @param {string} url The URL we want to request
* @param {object} [options] The options we want to pass to "fetch"
* @return {object} An object containing either "data" or "err"
*/
export default function request(url, options) {
return fetch(url, options)
.then(checkStatus)
.then(parseJSON)
.then(data => ({ data }))
.catch(err => ({ err }));
}
request here data is a Promise
effects: {
*login({payload }, { call, put }) { // eslint-disable-line
const {data} = yield call(login,payload);
if(data.success){
routerRedux.push("./users")
}
},
},
service is called by model
export function login(data)
{
let _data = fetch(url,data);
console.log(_data);
return _data;
}
the environmental background of the problems and what methods you have tried
related codes
/ / Please paste the code text below (do not replace the code with pictures)