NodeJS - 使用Promises进行API调用

时间:2016-08-10 07:22:45

标签: javascript node.js asynchronous promise es6-promise

我有一个nodeJS库,我在其中编写某个功能,它将调用SOAP API来获取信息。

我希望人们可以轻松使用该库。所以他们可以打电话:

library.requestThatService(parameters ...);

图书馆应该处理场景背后的所有肮脏工作。我希望库做的是首先可能验证给定的参数。然后根据参数(序列化?)构建要发送的消息,创建签名等...最后,使用soap客户端调用soap API,包括之前创建和签名的消息。

现在我正在考虑使用javascript Promises。我不确定是否应该包装整个library.requestThatService(parameters ...)函数来返回一个promise,然后使用fail和success函数(.then in practice)。 我真正要问的是,我是否应该仅对实际的异步API调用或整个库函数使用异步?我可以向它添加一个回调函数,而不是让库调用返回一个promise。然后在库函数内部,我应该仅对发送SOAP请求的部分使用async promises。并且不包括异步部分的验证和消息创建,因为它们不是异步操作。

SOAP客户端可能已经自己返回一个promise。那么我就会有两个承诺浮动一个函数,我不确定这是不是一个好主意。然后其中一个承诺将无法解决或拒绝。

1 个答案:

答案 0 :(得分:2)

  

我是否应该仅对实际的异步API调用或整个库函数使用async?

是的 - 总是在最低级别宣传!你会想要自己使用承诺的力量,不是吗?

  

SOAP客户端可能已经自己返回一个promise。那么我会在函数中有两个承诺,我不确定这是不是一个好主意。

事实上,在另一个new Promise来电中回复承诺回复电话的费用是exceptionally bad idea