我想设置令牌 授权 </跨度> 标头但令牌设置为null。我尝试从chrome存储中获取令牌,但是虽然我在控制锟拷()时从存储中获取令牌但未设置令牌; headers.append(‘Content-Type’,‘application / json’); headers.append(” 授权 </跨度> ’,’Token:$ {token}`) fetch(apiUrl,{ 方法:‘GET’, 头 }) .then(function(response){ console.log锟
该 sync 在 chrome.storage.sync.get 并不意味着它是同步的
sync
chrome.storage.sync.get
需要回调的事实表明它是 的 一个 强> 同步 - 而不是采取回调保证某些东西当然是异步的,但在这种情况下很明显它是
所以把提取 的 内 强> 回调
function fetchCurrentUser() { const apiUrl = `api2.navihq.com/get_current_user`; chrome.storage.sync.get(['user_token'], function(result) { var token = result['user_token']; console.log('token', token); // getting null const headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Authorization', `Token: ${token}`) fetch(apiUrl, { method: 'GET', headers }).then(function(response) { console.log('response', response); return response.json() }).then(function(data) { console.log('data', data); return JSON.parse(atob(data.user)) }) }); }
或者,您可以“promisify”chrome.storage.sync.get函数
function fetchCurrentUser() { const chromeStorageGetPromise = key => new Promise(resolve => chrome.storage.sync.get(key, resolve)); const apiUrl = `api2.navihq.com/get_current_user`; chromeStorageGetPromise(['user_token']) .then(({user_token: token}) => { console.log('token', token); const headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Authorization', `Token: ${token}`); return fetch(apiUrl, { method: 'GET', headers }); }).then(response => { console.log('response', response); return response.json(); }).then(data => { console.log('data', data); return JSON.parse(atob(data.user)); }) }