语句的混乱"/>
围绕异步和return语句的混乱
我想做的是向Web API发出请求,然后如果输入有效,则从函数返回true,否则返回false。我希望请求是异步的,但是我不希望函数在验证请求之前返回。在发出请求时,我只想继续处理输入。
这里是函数的重要部分:
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(JSON.stringify(body));
if(body.player !== "null") {
console.log(body.player.socialMedia.links["DISCORD"]);
console.log((client.users.get(author).username + "#" + client.users.get(author).discriminator));
if (body.player.socialMedia.links["DISCORD"] === (client.users.get(author).username + "#" + client.users.get(author).discriminator)) {
fs.writeFile(`users/${body.player.uuid}.json`, `{"uuid":"${body.player.uuid}",\n"ign":"${nm}",\n"id":"${author}"}`, {"flag": "w"});
successFlag = true;
}
}
}
});
console.log(successFlag);
return successFlag;
如果我使用async / await,我不确定在获取数据时是否会继续处理inpute。
回答如下:return successFlag;
应该在回调内部,否则如果没有响应,它将被返回。因此,将最后三行更改为
console.log(successFlag);
return successFlag;
});
更多推荐
围绕异步和return语句的混乱
发布评论