gpt4 book ai didi

javascript - Bluebird promise 与 Swagger : return is not a function

转载 作者:行者123 更新时间:2023-11-28 18:10:10 24 4
gpt4 key购买 nike

我正在使用 Swagger 创建 JS API 客户端来调用一组 REST 端点。我正在配置 Swagger 客户端以使用 Promises ( new Swagger({ spec: spec, usePromise: true }) )。

require Bluebird 在 Swagger 之前,使用 Bluebird promise 。但我的应用程序在尝试使用 Promise.return 时崩溃了.

代码看起来像

client.user.get_db_user(db).return("foo");

其中 client 是 Swagger 引用。

我得到的错误是

app: TypeError: client.user.get_db_user(...).return is not a function

如果我替换 return 就可以了与 then(() => value)return应该是这种使用 then 的简写.

经过调查,我发现它没有兑现 Swagger 客户端返回的 promise 。

发生了什么事?

最佳答案

您似乎无法告诉 Swagger 使用 Bluebird Promise。但是,在您想要使用 Bluebird 方法的特定位置,您可以将 Swagger Promise“转换”为 Bluebird Promise,然后使用 Bluebird 的功能。要转换这样的 Promise,只需将其包装在 Promise.resolve() 中:

const Promise = require('bluebird');

Promise.resolve(client.user.get_db_user(db)).return(...)

尽管在这种特定情况下,由于 .return() 只是为了节省您的输入量,所以在您将之前的 promise 封装在 中之后,它并不是真正的净节省。 Promise.resolve()。但是,对于更有意义的方法,例如 .map() 或类似的方法,它可能更有用。

关于javascript - Bluebird promise 与 Swagger : return is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41796949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com