嗨,我正在做一个axios请求来获取图像,但响应参数不能分配给任何类型的变量,但我可以在console.log中读取它们我错了吗?
let string = null;
axios.get('/images/0dace5ee-1be7-4d2c-a07fb03927096815')
.then(res =>{
console.log(res.data) //returns the value of the binary
console.log(res.headers['content-type']);//returns the current type image/png
string = 'data:'+res.headers['content-type']+';base64,'+ btoa(res.data);
})
.catch(error => {
console.log(error)
})
console.log(string)//returns null
答案 0 :(得分:1)
的console.log(字符串);应该在承诺链内。
更多关于promises
由于它们以异步方式运行,因此console.log(在当时链之外)将在promise完成之前运行。因此,调用后需要运行的所有工作必须位于 .then 链中。或 .catch 表示错误
let string = null;
axios.get('/images/0dace5ee-1be7-4d2c-a07fb03927096815')
.then(res =>{
console.log(res.data) //returns the value of the binary
console.log(res.headers['content-type']);//returns the current type image/png
string = 'data:'+res.headers['content-type']+';base64,'+ btoa(res.data);
// it's async so you should console.log in in .then promise chain.
console.log(string);
})
.catch(error => {
console.log(error)
})