koa 中,中介軟體非同步與同步的相關問題

2022-08-16 09:15:11 字數 1270 閱讀 9532

同步中介軟體很容易理解,如以下**:

1 const router = require('koa-router')

2 , koa = new router()

34 , fs = require('fs')5;

6/*中介軟體執行順序 與非同步中介軟體

*/7 const one = (ctx, next) =>;

1213 const two = (ctx, next) =>;

1819 const three = (ctx, next) =>;

2425 koa['get']('/middlestack', one, two, three, async (ctx) =>);

以上**在控制台一次列印:

>> one

>> two

>> three

>> four

<< four

<< three

<< two

<< one

如果將其中乙個中介軟體改為非同步中介軟體:

1 koa['get']('/middlestack', one, two, three, async (ctx) =>);

則控制台列印順序為:

>> one

>> two

>> three

>> four

<< three

<< two

<< one

<< four

同步中介軟體並不會等待非同步中介軟體返回結果才繼續 next 之後的**,若將所有的中介軟體都改為非同步中介軟體:

1

/*中介軟體執行順序 與非同步中介軟體

*/2 const one = async (ctx, next) =>;

78 const two = async (ctx, next) =>;

1314 const three = async (ctx, next) =>;

1920 koa['get']('/middlestack', one, two, three, async (ctx) =>);

>> one

>> two

>> three

>> four

<< four

<< three

<< two

<< one

列印順序又回到所有的中介軟體為同步中介軟體的情況。

總結:在 koa 變成中,盡量將所有的中介軟體都些為非同步中介軟體,使得執行順序是可控可理解的。

koa2 mysql 中介軟體 Koa2 中介軟體

1.什麼是koa2中介軟體?二 常用的五個中介軟體 1.koa 面向node.js的表示式http中介軟體框架,使web應用程式和api更加令人愉快地編寫。koa的中介軟體堆疊以類似堆疊的方式流動,允許您執行下游操作,然後過濾和處理上游的響應。ctx.body hello world 2.koa r...

Koa 中介軟體的執行順序

const koa require koa koa console.log 1 await next 呼叫下乙個middleware console.log 5 console.log 2 await next 呼叫下乙個middleware console.log 4 console.log 3 ...

Koa(二) 中介軟體

const koa require koa router require koa router newkoa 應用級中介軟體 匹配路由之前操作 路由級中介軟體 路由以後繼續向下匹配路由 錯誤處理中介軟體 遇到 next 在執行 router.get 沒有找到路由位址 在執行 if ctx.statu...