蓝鸟承诺解析(数据)在客户端代码中未定义

2024-04-02

希亚斯。我有一个简单的应用程序,客户端期望得到一个承诺作为结果,但是在调用resolve()方法时,承诺不断返回未定义的结果。

客户端代码:

UsersRepo.findOneAsync({id: id}).then(function(err, result) {
    console.log("UserService promise resolution", err, result);
});

这分别针对 err 和 result 输出“null”和“undefined”

正在执行工作并返回承诺的代码:

findOneAsync: function(args) {
    var where = ""; //omitted

    var promise = new Promise(function(resolve, reject) {
        db.query("Select * from users" + where + " limit 1", function(err, result) {
            var res = { id: 1, username: 'username', firstName: 'First', lastName: 'Last' };

            if(err != null) {
                console.log("REJECT", err);
                reject(err);
            }
            else {
                console.log("RESOLVE", res);
                resolve(null, res);
            }
        });
    });

    return promise;
}

正如您所看到的,我只是为此测试返回一些静态数据(“res”变量)。在客户端代码中,控制台语句总是打印出:

UserService promise resolution null undefined

我不明白这一点。看起来我做的一切都是正确的:用数据调用resolve()方法,并且客户端代码正确地使用.then(function(err, result)),看起来是这样。为什么客户端收不到数据?

谢谢你的帮助!

==>

解决方案:

如下所述,Bluebird 的拒绝和解决仅采用一个参数。第一个“null”仅被看到。将代码更改为“resolve(res)”有效。多谢你们。


Resolve/Reject 都接受单个参数...因此为什么你的结果是未定义的,因为你传递给解析的第二个值从未被使用,第一个值为 null

你想做的是

UsersRepo.findOneAsync({id: id}).then(function(result) {
    console.log("UserService promise resolution", result);
}).catch(function(err) {
    console.log("UserService promise error", err);
});

findOneAsync: function(args) {
    var where = ""; //omitted

    var promise = new Promise(function(resolve, reject) {
        db.query("Select * from users" + where + " limit 1", function(err, result) {
            var res = { id: 1, username: 'username', firstName: 'First', lastName: 'Last' };

            if(err != null) {
                console.log("REJECT", err);
                reject(err);
            }
            else {
                console.log("RESOLVE", res);
                resolve(res);
            }
        });
    });

    return promise;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝鸟承诺解析(数据)在客户端代码中未定义 的相关文章

随机推荐

  • Pydev 显示未解决的导入,但脚本运行?

    我正在使用 PyDev 我正在尝试将我的项目类组织到包中 例如在一个文件夹中 我有一个模块 libraries fund price library py 在我的项目的另一个文件中 我尝试使用以下方式导入 from libraries fu
  • 如何提取文本中使用的关键字? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 使用 glFrustum 进行离轴投影

    我正在尝试使用 OpenGL 对场景进行离轴投影 并且我阅读了该文档罗伯特 库伊马的离轴投影 http csc lsu edu kooima pdfs gen perspective pdf现在对实际需要做什么有了更好的了解 但仍然有一些部
  • Java PaintComponent 告诉是否再次调用

    谷歌搜索了几天 我不知道如何判断在处理paintComponent时是否调用了paintComponent 这个过程漫长而复杂 如果我有第二个 或第三个 绘制请求 我想中止当前的绘制过程并重新开始最近的请求 你不能 打电话给paintCom
  • TensorFlow 2.0 中不再提供投影变换,我该怎么办?

    我的团队正在切换到 TensorFlow 2 0 我正在研究数据增强管道 TensorFlow 1 X 有tf contrib image transform允许投影变换 TensorFlow 中没有变换函数tf image它肯定没有tf
  • AzureDev Ops CI 构建未更新版本 (VersionPrefix)

    我有一个 Azure DevOps 管道 其中包含本地 nuget 包到本地工件存储库 然后推送到 nuget org 但是它不会更新版本并保持在1 0 0 build ver 在本地 azure DevOps 项目工件中 同时版本卡在包的
  • 如何根据控件的属性(Top/Tabstop)设置WPF动画BeginTime

    我有一个 WPF 应用程序 它在垂直堆栈面板中具有一系列按钮 类似于 DVR 菜单的外观 我想出了如何制作一个动画 当每个新的菜单页面加载时 按钮 控件全部 unfade fall deblur 无论什么 都存在 这很好 但有点太统一了 我
  • 使用非常量表达式作为模板参数

    这是后续如何获取可变参数模板类中函数指针的参数类型 https stackoverflow com questions 9065081 how do i get the argument types of a function pointe
  • 生成器完成后调用自耕农生成器

    我希望在第一个生成器完成安装后调用另一个 yeoman 生成器 这将基于我对其中一个提示给出的答案 我尝试在最后调用它 end function this installDependencies callback function if t
  • JAXB - 将 SOAP 映射到 Java 类

    我需要帮助将我的 Soap Envelope 映射到 java 类 我的目的是将结果操纵到数据库 我在获取 SOAP 信封或使用 DB 方面没有任何问题 我的问题完全在于 JABX 以及根据我的 SOAP 信封映射我的类 这是我的肥皂
  • 登录时传递cookie

    我想集成 python Selenium 和 Requests 模块以在网站上进行身份验证 我正在使用以下代码 import requests from selenium import webdriver driver webdriver
  • 如何在 SQLite 查询中使用正则表达式?

    我想在 sqlite 中使用正则表达式 但我不知道如何 我的表有一列包含如下字符串 3 12 13 14 19 28 32 现在 如果我输入 where x LIKE 3 我还会得到包含 13 或 32 等值的行 但我只想获取该字符串中恰好
  • 以编程方式在 UITableViewCell 中呈现带有按钮的视图控制器 (Swift)

    I am trying to make it where when a user clicks on a table view cell in my table view it takes them to a new view contro
  • Outlook 插件 - 获取当前选定的日历日期

    当右键单击日历并运行功能区操作时 是否可以像获取当前邮件项或约会项一样获取选定的日历日期 功能区 XML
  • 是否可以将组件作为 props 传递并在 Vue 的子组件中使用它?

    在 Vue 2 0 应用程序中 假设我们有组件 A B 和 C A声明 注册并使用B 是否可以将C从A传递到B 像这样的事情
  • 如何取消numpy seed()的效果?

    我想在程序的第一部分使用 np random seed 并在第二部分取消它 再次 在我的 python 文件的第一部分中 我希望在每次执行时生成相同的随机数 在第二部分中 我希望在每次执行时生成不同的随机数 在第一部分中 使用常量初始化种子
  • Exchange Web 服务附件加载缓慢

    我正在编写一些代码来下载和处理电子邮件的附件 然后处理它们 该代码在某些情况下可以按要求工作 但仍然存在一些重大问题 每当代码将附件加载到本地磁盘上的文件中时 都会花费很长的时间 并且经常会由于下载缓慢而超时 并出现以下异常 A first
  • 意外查询成功

    SELECT COUNT FROM rps2 workflow WHERE workflow added gt TO DATE 01 09 2011 dd mm yyyy AND workflow finished lt TO DATE w
  • 如何将 system.data.SQLite.dll 的引用添加到 Windows Phone 7

    我是 Windows Phone 7 的新手 请帮我解决这个问题 我想在Windows Phone 7中添加SQLite数据库 我下载了system data SQLite dll 来自sourceforge www sqlite org
  • 蓝鸟承诺解析(数据)在客户端代码中未定义

    希亚斯 我有一个简单的应用程序 客户端期望得到一个承诺作为结果 但是在调用resolve 方法时 承诺不断返回未定义的结果 客户端代码 UsersRepo findOneAsync id id then function err resul