初学es6,调用receiveData方式,虽然能读取数据,但是返回的data依然是空
module.exports = {
fetchData( dataUrl, start ) {
return new Promise((resolve, reject) => {
fetch(`${dataUrl}/data${(start+ 0 + '').padStart(2, '0')}.json`)
.then((data) => {
resolve(data.json());
}, (error) => {
reject(error);
})
});
},
async getData( dataUrl, start ) {
const _self = this;
let data = await _self.fetchData( dataUrl, start );
return data;
},
receiveData( dataUrl, start ) {
const _self = this;
let data = {};
_self.getData('virtual/result', 2).then(
function(responseThenData) {
data = responseThenData;
})
.then(function() {
//console.log('abc')
})
.catch(function(e) {
console.log("promise, error =", e);
});
return data;
}
}
我希望返回的data 是读取到的数据,怎么修改啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的getData是异步的,当你调用receiveData的时候,会直接返回空的Data出来,因为你的data赋值操作是在异步回调里面去做的,但是你的return却不是在回调里面。你应该把receiveData也弄成async,然后调用的时候用await
大概是这么改