我正在用 mocha 做一些功能測驗。我將函式名稱、引數和成功訊息存盤在本地 JSON 檔案中。我正在使用本地 JSON 回應檢查我的資料庫回應。我到處都在使用 .then 和 .catch 。我正在尋找使用異步等待清理代碼。我如何在這里使用異步等待?
it('Check Authentication', (done) => {
readFileData('checkAuth').then(({ params, message}) => {
login.checkAuth({ ...params })
.then((result) => {
assert(result.message === message);
done();
})
.catch((err) => done(err));
});
});
uj5u.com熱心網友回復:
像這樣的東西。還沒有測驗過。基本上,而不是.then()你只是await電話。請注意,有asyncbefore(done)回呼。.catch()可以用try/catch塊捕捉。
it('Check Authentication', async (done) => {
let response = await readFileData('checkAuth');
try {
let message = await login.checkAuth({ ...response.params }); // or w/e the response is
// assert the message
} (catch e) {
// do something with the error
}
});
uj5u.com熱心網友回復:
- 將回呼函式更改
async為使用 `await - 將所有
await呼叫包裝在try-catch塊中以處理錯誤 - 使用
const了params,message和result變數,但是,如果你在代碼后會重新分配值,您可以使用let來代替。 done()將是異步呼叫。await如果您也需要同步呼叫,請在前面添加
it('Check Authentication', async (done) => {
try {
const { params, message } = await readFileData('checkAuth');
const result = await login.checkAuth({ ...params });
assert(result.message === message);
done();
} catch (err) {
done(err);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353987.html
標籤:javascript 节点.js
