【问题标题】:Promise { <pending> } in Deno(typescript)Deno(打字稿)中的 Promise { <pending> }
【发布时间】:2021-02-13 03:03:14
【问题描述】:

我在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);
};

【问题讨论】:

  • 我在 deno.land 上检查了这个打字稿模块。你确定body是一个函数吗?
  • 是的。 login 函数想要返回请求正文。我刚学deno
  • 对,但它是什么类型的?你能做console.log(ctx.request.body)console.log(typeof ctx.request.body)吗?
  • 您正在从 .post 调用 login 但在 login 中您希望传递 ctx 在您的情况下将为空。你的 console.log 显示了什么?
  • 邮递员中的empty '{}',在我删除peomises后,我又遇到了同样的错误

标签: typescript promise deno


【解决方案1】:

根据docsbody().valuePromise&lt;unknown&gt;(假设你发送的是JSON),所以你需要把你的await移到值:

export const login= async (ctx:Context)=>
{
   const value = await ctx.request.body().value;
   ctx.response.body= value;
   console.log(value);
};

【讨论】:

  • 非常感谢。来自我的很多爱
猜你喜欢
  • 2021-11-25
  • 1970-01-01
  • 2016-11-17
  • 2020-11-17
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 2016-02-22
  • 2018-01-04
相关资源
最近更新 更多