我有一个类似的promise函数
private createDP(propsMessages:CustomClass){
const elem: HTMLElement = document.querySelector('#uid');
convertToDp(propsMessages).then(data => {
const mutatedData = this.ConvertMessages(data);
const dp = new MyClass<
string,
MyMessage
>(mutatedData, { keyAttributes: 'id' });
return dp;
});
返回null;}
private memoize = () => {
let previousDataProvider;
return (data: DataProvider<string, CustomMessage>) => {
if (data && data !== previousDataProvider) {
previousDataProvider = data;
const dp =this.createDP(data);
this.setState({
MessagesDp: dp,
});
}
};
};
我得到的这个返回值是空的,如何通过等待结果从函数返回数据
首先必须返回promise
private createDP(propsMessages){
const elem: HTMLElement = document.querySelector('#uid');
return convertToDp(propsMessages).then(data => {
const mutatedData = this.ConvertMessages(data);
const dp = new MyClass<
string,
MyMessage
>(mutatedData, { keyAttributes: 'id' });
return dp;
});
}
接下来,您必须设置promise解析时的状态
private memoize = () => {
let previousDataProvider;
return (data: DataProvider<string, CustomMessage>) => {
if (data && data !== previousDataProvider) {
previousDataProvider = data;
this.createDP(data)
.then( dp => this.setState({MessagesDp: dp}) )
}
};
};