не понятно когда вы вызываете тот самый closeView() , если до события , то он и отработает раньше изменений.
вы сделайте closeView().then(()=>{console.log('true');}).catch((error=>{console.log('error');}); и вы увидите, что скорее всего ваш промис прекрасно умирает еще до изменения события.
промис это асинхронная задача одноразового использования, а судя по вашему коду, вы думаете, что промис будет ждать изменения , которые вы посылаете в стейт.
Топорный вариант, в события саксес и кенсел вызывать функцию closeView(true) closeView(false)
и переписать функцию типо так:
closeView(state) {
return new Promise( (resolve, reject) => {
if (state) {
return reject();
}
else {
return resolve();
}
})
}