Я использую async/await
в коа2, как показано ниже
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx, next) => {
await next()
console.log("1------>"+Date.now())
});
app.use(async (ctx, next) => {
await next()
console.log("2------>"+Date.now())
});
app.use(async (ctx, next) => {
await next()
console.log("3------>"+Date.now())
});
app.use(async (ctx, next) => {
await next()
console.log("4------>"+Date.now())
});
app.listen(3000);
Запустите этот код, я получу журнал как это
4------>1526575713792
3------>1526575713794
2------>1526575713795
1------>1526575713795
А вот и мои вопросы
Что такое next
в app.use(async (ctx, next)
, это функция?
await next()
в каждой app.use
функции означает wait, please run the next app.use first
, если нет следующей app.use
, проигнорируйте ее и запустите код в последней функции app.use
, я прав?
Если я изменю первый app.use
на app.use(async (ctx) => { console.log("1------>"+Date.now())});
и запусту его, результат будет иметь только одну запись 1------>1526576945380
. Я думал, что вторая функция app.use
продолжит работать, и я получу результат, подобный этому
1 ------> 1526576945360
4 ------> 1526575761869
3 ------> 1526575761869
2 ------> 1526575761869
Так, кто-нибудь может мне помочь? и объяснить для меня? Большое спасибо.