2
나는 redux saga API를 가지고 있는데, 여기서는 firebase에 연결하고 데이터 레코드를 읽는다.firebase에서 yield를 호출하는 방법 read API
var roomRef = firebase.database().ref('/Users/' + userid + '/rooms')
var rooms = []
roomRef.once('value', function (snap) {
var roomkeys = snap.val()
for (var roomkey in roomkeys) {
firebase.database().ref('/Rooms/' + roomkey).once('value', function (item) {
rooms.push(item.val())
})
}
console.log(rooms)
--> put({type: 'LOAD_ROOMS', payload: { rooms: rooms}})
})
내 put이 콜백 함수 안에 있기 때문에 yield 키워드를 사용할 수 없습니다. 새로운 값 'rooms'을 사용하여 감속기의 상태를 변경하는 이벤트를 전달하는 방법
매력처럼 작동했습니다! 감사 ! – Ricky
이 경우, firebase의'once' 메서드는 이미 Promise를 반환하기 때문에 Promise를 인스턴스화 할 필요조차 없습니다. 'function getRooms (userId) {firebase.database() .ref ('users /'+ userId + '/ rooms')를 한 번 ('value') 누른 다음 (snap => snap. val())}'을 호출하면, const rooms = yield call (getRooms, userId)' – VonD