最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

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

IT培训 admin 3浏览 0评论

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

我正在尝试拨打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)
            }
        })
    })
};

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

    await order.add(array_data, db, function (err, order_response) {
           //logic
}
回答如下:
// 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, db, logger) => {
  const extranet = new API_EXTRANET();

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

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

如果要包装addOrder返回,可以执行:

// 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, db, logger) => {
  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, db);
} catch (err) {
  // Handle the error
}

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

我正在尝试拨打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)
            }
        })
    })
};

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

    await order.add(array_data, db, function (err, order_response) {
           //logic
}
回答如下:
// 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, db, logger) => {
  const extranet = new API_EXTRANET();

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

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

如果要包装addOrder返回,可以执行:

// 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, db, logger) => {
  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, db);
} catch (err) {
  // Handle the error
}
发布评论

评论列表 (0)

  1. 暂无评论