반응형
VueJS Vuex - 상태 변경 시 해결 약속?
글로벌 vuex 스토어의 변수가 변경되면 해결되는 Promise를 만들 수 있습니까?
다음과 같이 초기화된 변수가 있습니다.null
비동기 콜을 통해 입력됩니다.
앱의 다른 부분은 해당 변수에 따라 달라집니다.true
또는false
그리고 그것이 아직 있을 때까지 기다려야 한다.null
.
이 변수의 변경을 깔끔하게 기다릴 수 있는 방법이 있습니까?
표현식이나 함수에 대해서 그것을 약속으로 포장할 수 있습니다.
function watch(vm, fn) {
return new Promise(resolve => {
const watcher = vm.$watch(fn, (newVal) => {
resolve(newVal);
watcher(); // cleanup;
});
});
}
이를 통해 다음과 같은 작업을 수행할 수 있습니다.
let change = await watch(vm, () => state.foo); // will resolve when state.foo changes
의 내부async function
.
일반적으로 이것은 훌륭한 패턴은 아닙니다.대부분의 경우 이를 위해 (약속이 아닌) 계산된 속성을 사용하는 것이 바람직하고 간단합니다.
벤자민의 대답과 비슷하고, 당신이 원하는 것이 정확히는 아니지만, 단지 다른 선택지일 뿐입니다.상태 변화를 감시하는 대신 특정 유형의 변환이 발생했을 때 구독하고 이를 Promise로 래핑할 수 있습니다.
new Promise(resolve => {
let unsubscribeFn = this.$store.subscribe(mutation => {
if (mutation.type === "MY_MUTATION") {
unsubscribeFn();
resolve();
}
});
});
언급URL : https://stackoverflow.com/questions/52680002/vuejs-vuex-promise-that-resolves-on-state-change
반응형
'programing' 카테고리의 다른 글
어레이를 0(C)으로 초기화하려면 어떻게 해야 합니까? (0) | 2022.08.10 |
---|---|
Vuex 작업으로 라우터 매개 변수 가져오기 (0) | 2022.08.10 |
Android에서 선택한 RadioGroup 인덱스를 가져오는 방법 (0) | 2022.08.10 |
Linux에서 gdb의 C 또는 C++ 코드의 중단점을 프로그래밍 방식으로 설정합니다. (0) | 2022.08.10 |
여러 기준으로 결과를 필터링하려면 어떻게 해야 합니까? (0) | 2022.08.10 |