【发布时间】:2018-03-05 10:29:48
【问题描述】:
我有这个发帖路线:
app.post("/new", async (req, res) => {
const Lob = require("lob")({ apiKey: keys.LOB_API });
let toAddress = await lobFuncs.toAddress(req.body.addrLine1, Lob);
console.log("test");
});
toAddress() 函数如下所示:
toAddress: async (address, Lob) => {
await this.parseGoogleCiv(address, obj => {
console.log(obj);
});
},
parseGoogleCiv: async (address, callback) => {
address = address
.trim()
.split(" ")
.join("%20");
let URL = "some long URL"
await request(URL, function(err, res) {
if (err) {
console.log(err);
} else {
let body = JSON.parse(res.body);
callback(body);
}
});
}
但这是我的输出...
test
body
“测试”输出应该在正文输出之后。
问题: 这里发生了什么?据我所知,我认为我正确地完成了所有异步/等待,因为我没有收到承诺错误。有什么想法吗?
【问题讨论】:
-
最后的
request()方法需要一个回调,所以它似乎没有返回一个承诺,因此之前的await基本上没有效果。 -
那里有一个承诺版本的
request。使用它并杀死那个回调...... -
感谢您的回复!
标签: javascript node.js promise async-await