如下面发布的代码所示,我试图将值access_token
从fetchAuthenticationToken
传递到Ws.js
中的方法fetch
.
在fetchAuthenticationToken
中,我接收access_token
值,然后将该值设置为resolve
和onResult
.到这里,我可以得到access_token
的值.processor
个网站中的.then()
个
在processor
web-service中,我调用.then(resp => {res.send(resp);})
以便将access_token
的值发送到前端.但是console.info
of fetch
显示以下内容:
{"msg":"I.xx::fetch:http://localhost:3000/xx/processor/","response":{}}
如图所示为空的response
请让我知道我错过了什么,以及如何将access_token
的值从后端传递到前端,从fetchAuthenticationToken
到fetch
setup.js:
fetchAuthenticationToken(onResult) {
return new Promise((resolve,reject) => {
this.#instance.post("/xx/xx/xx/xx/xx-xx/xx", this.#body, this.#config)
.then(resp => {
this.#access_token = resp.data.access_token;
Object.assign(this.#instance.defaults, {headers: {authorization: `Bearer ${resp.data.access_token}`}})
resolve(this.#access_token);
onResult(this.#access_token);
})
});
}
routes.js:
router.post('/processor', async (req, res, next) => {
let accessToken = null;
const setup = new Setup();
await setup.fetchAuthenticationToken((result) => {
accessToken = result;
res.setHeader('Content-Type', 'application/x-protobuf');
})
.then(resp => {
res.send(resp);
})
});
front-end Ws:
fetch(onResult) {
return new Promise((resolve, reject) => {
const ws = endPointsURLs.VUE_NEWSWM_APP_LOCAL_HOST_3000.description + endPointsURLs.VUE_NEWSWM_APP_PATH.description + BackendWssConstants.CONST_WS_SENTINELHUB_ENGINE_PROCESSOR.description;
fetch(ws, this.#requestOptions)
.then(response => {
this.#msg = JSON.stringify({msg:infoTag + 'fetch:' + ws, response: response});
console.info(this.#msg);
resolve(response);
onResult(response);
})
});
}