【发布时间】:2019-01-09 08:13:09
【问题描述】:
目前,makeQuery() 中的console.log() 正在返回正确的对象,而scoop() 中的console.log() 正在返回“未定义”,因为scoop() 中response 的定义没有等待函数调用到makeQuery()返回。
我希望scoop() 中的response 的定义在下面的代码运行之前等待对makeQuery() 的函数调用。
我该如何做到这一点?
var request = require('request');
const makeQuery = (query) => {
request('http://0.0.0.0:4000/wikiweb?text=' + query, function (error, response, body) {
var jason = JSON.parse(body)
console.log(jason)
return jason
}
)
class Wiki extends React.Component {
constructor (props) {
super(props)
this.scoop = this.scoop.bind(this);
this.state = {loaded: false}
}
scoop = async (e) => {
e.preventDefault();
var query = this.textInput.value;
var response = await makeQuery(query);
console.log(response)
// await this.setState({data : response, loaded : true});
// console.log(this.state.data)
}
...
【问题讨论】:
-
你没有从
makeQuery返回任何东西,并且返回值undefined。
标签: javascript reactjs async-await