在文件A中,我在IIFE中获得了一个承诺,并更新了一个变量。返回此变量(对其他文件公开)。
var ServiceResponse = (function() {
var cardPattern = null;
getCardPattern().then(function(response) {
console.info('Successfully fetched card pattern details.');
cardPattern = response;
App.init();
},
function(error) {
console.error('Failed fetching card pattern details!');
});
return {
cardPattern : cardPattern
}
})();
在文件B中,我试图使用这个返回的变量,但我得到的是null,而不是来自promise响应的更新值。
var validateCreditCard = function(cardNumber, expiryMonth, expiryYear, cvv) {
var creditCardPattern = ServiceResponse.cardPattern;
我确保文件B调用仅在返回promise后完成,但没有运气。为什么呢?