使用dva 的fetch访问网络,已成功返回数据,为何fetch 返回的是promise 而不是请求的数据
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 }));
}
请求 此处data为一个Promise
effects: {
*login({payload }, { call, put }) { // eslint-disable-line
const {data} = yield call(login,payload);
if(data.success){
routerRedux.push('./users')
}
},
},
service 被model调用
export function login(data)
{
let _data = fetch(url,data);
console.log(_data);
return _data;
}
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
我调用的时候取到的就是返回的数据