4

嗨,我如何读取从 fetch 调用返回的数据:

export function* fetchMessages(channel) {     
    yield put(requestMessages())
    const channel_name = channel.payload
    try {      
        const response = yield call(fetch,'/api/messages/'+channel_name)

        const res = response.json()
            console.log(res)
        yield put(receiveMessages(res,channel))


   } catch (error){      
       yield put(rejectMessages(error))
   }      
}     

当我 console.log(res) 我得到:

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
__proto__
:
Promise
[[PromiseStatus]]
:
"resolved"
[[PromiseValue]]
:
Array[7]

我如何从这个承诺中获得我的“信息”(数组 [7]?我对这一切都是新手。谢谢

4

1 回答 1

2

response.json() 是异步的并返回 promise

改变这个

const res = response.json()

const res = yield response.json()

webpackbin示例

于 2016-08-29T12:51:57.173 回答