私が約束の解決/拒否処理を名前付き関数に移すと、それが機能しません。なぜ誰かが説明してくれますか?名前付き関数が約束を解決または拒否しない
作品:
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 - ユニットテストのために親関数からコールバックを抽象化する方法はありませんか? –