当我将promise的解析/拒绝处理移动到命名函数时,它不起作用。有人可以解释为什么请吗?命名函数不解决或拒绝承诺
作品:
function getPremium(policyNumber, agentNumber) {
return new Promise(function (resolve, reject) {
soap.createClient(wsdl, function (error, client) {
client.addSoapHeader(soapHeader());
client[config.webMethodName](soapBody(number), (error, soapResponse) => {
return resolve(soapResponse);
});
});
});
}
不起作用:
var handleResponse = (error, soapResponse) => {
return resolve(soapResponse);
}
function getPremium(policyNumber, agentNumber) {
return new Promise(function (resolve, reject) {
soap.createClient(wsdl, function (error, client) {
client.addSoapHeader(soapHeader());
client[config.webMethodName](soapBody(number), handleResponse);
});
});
}
当然它不会工作,在该代码'VAR用handleResponse =(错误,soapResponse)=> {返回解析(soapResponse); ''没有定义。当'handleResponse'创建(解析和解释)时,它绑定到外部上下文(闭包)。 'handleResponse'不知道将来如何使用它。 – dfsq
@dfsq - 所以没有办法将回调从父函数抽象出来进行单元测试? –