我有这个post路由:
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
“test”输出应该在正文输出之后。
问题: 这里发生了什么?据我所知,我认为我正确地完成了所有的异步/等待操作,因为我没有收到任何Promise错误。有什么想法吗?
request()
方法需要一个回调函数,因此它似乎不返回一个Promise,因此在它之前的await
基本上没有起作用。 - Sirkorequest
版本可供使用。使用它,消除回调函数... - Jonas Wilms