在 Deno(打字稿)中承诺 { <pending> }
Promise { <pending> } in Deno(typescript)
我在 typescript
中写了一个简单的 API 应用程序 Deno。我使用承诺发送响应。但我收到了 Promis 未决错误。这里出了什么问题?
Promise { <pending> }
server.ts
import { Application,Router,Context } from "https://deno.land/x/oak/mod.ts";
import {login,auth,guest} from './router.ts';
const router=new Router();
router
.post('/login',login);
const app=new Application();
app.use(router.routes());
app.use(router.allowedMethods());
app.listen({port:8000});
console.log('started port 8000');
Router.ts
import {Context } from "https://deno.land/x/oak/mod.ts";
export const login= async (ctx:Context)=>
{
const {value}= await ctx.request.body();
ctx.response.body=value;
console.log(value);
};
根据docs body().value
是一个Promise<unknown>
(假设你发送的是JSON),所以你需要将你的await
移动到值:
export const login= async (ctx:Context)=>
{
const value = await ctx.request.body().value;
ctx.response.body= value;
console.log(value);
};
我在 typescript
中写了一个简单的 API 应用程序 Deno。我使用承诺发送响应。但我收到了 Promis 未决错误。这里出了什么问题?
Promise { <pending> }
server.ts
import { Application,Router,Context } from "https://deno.land/x/oak/mod.ts";
import {login,auth,guest} from './router.ts';
const router=new Router();
router
.post('/login',login);
const app=new Application();
app.use(router.routes());
app.use(router.allowedMethods());
app.listen({port:8000});
console.log('started port 8000');
Router.ts
import {Context } from "https://deno.land/x/oak/mod.ts";
export const login= async (ctx:Context)=>
{
const {value}= await ctx.request.body();
ctx.response.body=value;
console.log(value);
};
根据docs body().value
是一个Promise<unknown>
(假设你发送的是JSON),所以你需要将你的await
移动到值:
export const login= async (ctx:Context)=>
{
const value = await ctx.request.body().value;
ctx.response.body= value;
console.log(value);
};