2
我有這個帖子的路線:異步/等待不是等待承諾完成
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
「測試」輸出應出現在主體輸出之後。
問題: 這是怎麼回事?據我所知,我認爲我做了所有的異步/等待正確看到,因爲我沒有收到承諾錯誤。有任何想法嗎?
了'請求()'方法在年底採用了回調,這樣看來,它不返回承諾,因此,在它基本上沒有效果之前,「等待」權利。 – Sirko
Theres是那裏'request'的promisified版本。使用它並殺死那個回調... –
感謝您的回覆! – Phillip