如何向第三方服务器发出承诺电话?

乔希

我正在尝试拨打Extranet,这应该返回一个参数,但api不会等待它。

Orders.prototype.add = function (data, db, callback, logger) {
    var extranet = new API_EXTRANET();
    extranet.addOrder(data, function(err, orders) {
        if (!err) {
            if(callback) callback(false, orders);
        }else{
            if(callback) callback(err, false);
        }
    }, logger);
};

我试图退还它的承诺,但没有任何反应。

Orders.prototype.add = function (data, db, callback, logger) {
    var extranet = new API_EXTRANET();
    return new Promise((resolve, reject) => {
        extranet.addOrder(data, function(err, orders) {
            if (err){
                reject(err)
            } else {
                resolve(orders)
            }
        })
    })
};

这是我调用该方法的地方:

order.addStoreOrder(order_data_update, db).then((response) => {
                                                            order.add(array_data, db, function (err, order_response) {
格雷戈里·纽特

您正在混合使用不同的方式来处理异步调用:回调和Promise。您应该只遵守诺言。

// There is no need for callback here, the promise replace your callback
// Because you use of await I guess you should use it here as well
Orders.prototype.add = async (data) => {
  const extranet = new API_EXTRANET();

  return util.promisify(extranet.addOrder)(data);
};

// How to call it
try {
  const orders = await order.add(arrayData);
} catch (err) {
  // Handle the error
}

如果您想包装addOrder退货,可以执行以下操作:

Orders.prototype.add = async(data) => {
  const extranet = new API_EXTRANET();

  try {
    const orders = await util.promisify(extranet.addOrder)(data);

    console.log(orders);

    return orders;
  } catch (err) {
    console.error(err);

    throw new Error('custom error');
  }
};

// How to call it
try {
  const orders = await order.add(arrayData);
} catch (err) {
  // Handle the error
}

文档util.promisify()

描述:它将使用回调的函数转换为Promise函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从MS Office加载项向第三方服务器发出AJAX请求

来自分类Dev

如何在“第三方服务器”上对GKLocalPlayer进行身份验证?

来自分类Dev

我如何从NAnt的NuGet服务器获得第三方依赖关系?

来自分类Dev

如何使用Java JDK 1.7在我的第三方服务器上对GKLocalPlayer进行身份验证?

来自分类Dev

如何向第三方库添加方法

来自分类Dev

通过Jaxax REST Client界面与第三方服务器上载文件

来自分类Dev

请求服务器日志中的第三方网站

来自分类Dev

使用密码凭证流和某些第三方授权服务器

来自分类Dev

是否可以从第三方Java服务器注册android设备?

来自分类Dev

第三方服务整合

来自分类Dev

向第三方API Node.js发出多个请求后如何发送响应

来自分类Dev

向需要身份验证的第三方发出API请求

来自分类Dev

无法向第三方应用发出发布请求

来自分类Dev

使用OAuth将REST调用从节点服务器发送到第三方应用程序

来自分类Dev

安装第三方库以在Google App Engine开发服务器内外均可使用

来自分类Dev

使用jQuery从Vagrant VM上托管的第三方Node.js服务器获取数据-JSONP

来自分类Dev

传输任何大小的文件,而无需使用php上传到第三方服务器

来自分类Dev

商业VPN上的服务器,希望避免使用第三方帮助进行连接

来自分类Dev

Python枕头:在将图像发送到第三方服务器之前使图像渐进

来自分类Dev

将第三方服务器中的对象ID用作SQL数据库的PK是否很好?

来自分类Dev

Python http服务器响应发布请求而无需安装任何第三方模块

来自分类Dev

OpenID Connect服务器。根据第三方令牌生成访问令牌(社交登录)

来自分类Dev

使用 .NET 调用第三方 API 服务器端并传递变量以在 Javascript 中使用

来自分类Dev

.NET如何在没有第三方的情况下从Gmail服务器检索电子邮件列表

来自分类Dev

如何在Ubuntu 16.04.2 TLS服务器(mpt3sas v15)上正确安装/更新.deb第三方驱动程序?

来自分类Dev

如何构建涉及承诺和第三方NPM模块的摩卡单元测试?

来自分类Dev

Django向第三方模型添加方法

来自分类Dev

GCM多少个第三方服务器可以使用一个服务器密钥?

来自分类Dev

GCM可以使用一个服务器密钥有多少个第三方服务器?

Related 相关文章

  1. 1

    从MS Office加载项向第三方服务器发出AJAX请求

  2. 2

    如何在“第三方服务器”上对GKLocalPlayer进行身份验证?

  3. 3

    我如何从NAnt的NuGet服务器获得第三方依赖关系?

  4. 4

    如何使用Java JDK 1.7在我的第三方服务器上对GKLocalPlayer进行身份验证?

  5. 5

    如何向第三方库添加方法

  6. 6

    通过Jaxax REST Client界面与第三方服务器上载文件

  7. 7

    请求服务器日志中的第三方网站

  8. 8

    使用密码凭证流和某些第三方授权服务器

  9. 9

    是否可以从第三方Java服务器注册android设备?

  10. 10

    第三方服务整合

  11. 11

    向第三方API Node.js发出多个请求后如何发送响应

  12. 12

    向需要身份验证的第三方发出API请求

  13. 13

    无法向第三方应用发出发布请求

  14. 14

    使用OAuth将REST调用从节点服务器发送到第三方应用程序

  15. 15

    安装第三方库以在Google App Engine开发服务器内外均可使用

  16. 16

    使用jQuery从Vagrant VM上托管的第三方Node.js服务器获取数据-JSONP

  17. 17

    传输任何大小的文件,而无需使用php上传到第三方服务器

  18. 18

    商业VPN上的服务器,希望避免使用第三方帮助进行连接

  19. 19

    Python枕头:在将图像发送到第三方服务器之前使图像渐进

  20. 20

    将第三方服务器中的对象ID用作SQL数据库的PK是否很好?

  21. 21

    Python http服务器响应发布请求而无需安装任何第三方模块

  22. 22

    OpenID Connect服务器。根据第三方令牌生成访问令牌(社交登录)

  23. 23

    使用 .NET 调用第三方 API 服务器端并传递变量以在 Javascript 中使用

  24. 24

    .NET如何在没有第三方的情况下从Gmail服务器检索电子邮件列表

  25. 25

    如何在Ubuntu 16.04.2 TLS服务器(mpt3sas v15)上正确安装/更新.deb第三方驱动程序?

  26. 26

    如何构建涉及承诺和第三方NPM模块的摩卡单元测试?

  27. 27

    Django向第三方模型添加方法

  28. 28

    GCM多少个第三方服务器可以使用一个服务器密钥?

  29. 29

    GCM可以使用一个服务器密钥有多少个第三方服务器?

热门标签

归档