在几次成功的调用之后Nodejs Node-SOAP ETIMEDOUT

几个成功的电话后,我得到一个ETIMEDOUT错误…这是代码:

soap.createClient("./WSDL/test.wsdl", function (err, soapClient) { if (err) { throw new Error(err) }; bpData.forEach(function (elementOfArray) { soapClient.service.binding.Update({ ProductUpload: { ID: elementOfArray.ProductID, newIndicator: 'false', UpdateIndicator: 'true', UpdateDate: dateFormat(new Date(), 'yyydd'), RawData: elementOfArray.RawData1, RawData2: elementOfArray.RawData2 } }, function (err, result) { if (err) { console.log(err); //throw new Error(err); } else { console.log(JSON.stringify(result)); return JSON.stringify(result); } } ); ..... 

我已经尝试设置超时参数,但没有任何改变…

谢谢!

forEach是一个同步函数,但soapClient.service.binding.Update是asynchronous的意思,你排队所有的请求在一瞬间。 你应该使用async.js或创build自己的函数来等待第一个请求完成到第二个。

多谢你们! 它使现在与asynchronous队列:)! 祝你晚上愉快