我看过几个例子,根据这些例子准备了我的解决方案。但是我仍然得到了 Promise __proto__: Promise [[PromiseStatus]]: "pending" [[PromiseValue]]: undefined
的错误信息。我正在尝试将我的 base64 数据存储在变量中,请告诉我我的代码有什么问题,并提供一个可行的解决方案。
以下是我尝试的代码:
import React, { Component } from 'react'
import { DropzoneArea, DropzoneDialog } from 'material-ui-dropzone'
import Button from '@material-ui/core/Button';
async function getBaseData(selectedFile) {
let base64;
var fileToLoad = selectedFile[0];
base64 = await getBase64(fileToLoad);
return base64; //This returns me PromiseStatus Pending
}
function getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
return Promise.resolve(reader.result)
});
}
export class ImageUploader extends Component {
constructor(props) {
super(props);
this.state = {
files: [],
image: null,
};
}
handleImageChange(files) {
const { imageCallback } = this.props
imageCallback(getBaseData(files)); // By this callback i am trying to pass my base64 string to other component
}
render() {
return (
<DropzoneArea
acceptedFiles={['image/*']}
filesLimit={1}
maxFileSize={10000000}
//showPreviews={false}
onChange={this.handleImageChange.bind(this)}
/>
)
}
}
Promise __proto__:Promise [[PromiseStatus]]:"resolved" [[PromiseValue]]:""
,但是没有值。 - user2019resolve(reader.result)
,并且我得到了Promise __proto__: Promise [[PromiseStatus]]: "resolved" [[PromiseValue]]: "data:image/png;base64,iVBO...
但是在非调试模式下,PromiseValue为空。请问有什么建议吗? - user2019