[英]Assign request response to the global variable - Module Javascript
假设我创建了一个BookController
并且在这个控制器中有一个类似于下面例子的函数:
import Fetch from './Fetch.js';
// GET
async function getAllBooks() {
const books = await Fetch.get('/books');
}
仍然在BookController.js
文件中,我是否可以导出此函数以在另一个 js 文件中调用它,如下所示?
function getAll() {
return getAllBooks();
}
export default {
getAll,
};
另一件事,是否可以将const books
转换为全局变量并导出该变量,以便我可以在任何地方使用它?
获取.js
// Fetch.js
const _apiHost = 'https://api.example';
async function request(url, params, method = 'GET') {
const options = {
method,
headers: {
'Content-Type': 'application/json'
}
};
if (params) {
if (method === 'GET') {
url += '?' + objectToQueryString(params);
} else {
options.body = JSON.stringify(params);
}
}
const response = await fetch(_apiHost + url, options);
if (response.status !== 200) {
return generateErrorResponse('The server responded with an unexpected status.');
}
const result = await response.json();
return result;
}
function objectToQueryString(obj) {
return Object.keys(obj).map(key => key + '=' + obj[key]).join('&');
}
function generateErrorResponse(message) {
return {
status : 'error',
message
};
}
function get(url, params) {
return request(url, params);
}
function create(url, params) {
return request(url, params, 'POST');
}
function update(url, params) {
return request(url, params, 'PUT');
}
function remove(url, params) {
return request(url, params, 'DELETE');
}
export default {
get,
create,
update,
remove
};
在javascript中,我们可以使用window对象来使用全局变量。
声明 book 变量,如window.books="some value"
不是const books
。
以同样的方式使用函数:
window.getAll = () => {
return getAllBooks();
}
并在任何地方获得价值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.