此函数应返回第二个await的值。目前它返回第一个等待的值

时间:2018-05-23 10:56:20

标签: react-native async-await

我在ApiServices.js页面中创建了一个名为getAllCams的函数。

async getAllCams() {
    try {
            const getAlarmListRes = await 
                fetch(`someurl`,
                {
                    method: 'GET',
                    headers: new Headers({
                        Authorization: `Basic ${base64.encode('user-id:1234')}`,
                        'Content-Type': 'application/json'
                    })
            });
            if (getAlarmListRes.status === 200) {
                const newData = await getAlarmListRes.json();
                if (newData !== '') {
                    loggingService.debug('here is your array', newData.alarms);
                    return newData;
                }
                return ApiService.FAILURE;
            }
            loggingService.debug('Was not able to get alarm list for you', getAlarmListRes);
            return ApiService.FAILURE;
        } catch (e) {
            loggingService.debug('could not get alarm list', e);
        }
    }

我在CameraNotification.js页面上调用此函数

componentWillMount() {
    loggingService.debug('component did mount');
    const listOfCams = apiService.getAllCams();
    loggingService.debug('here is your promise object', listOfCams);
}

我一直得到第一个await的结果,这是一个简单的promise对象,我在第二个等待中转换为JSON对象。根据我对await的理解,listOfCams应该返回一个数组,而不是promise对象。是什么导致这种情况发生?我尝试用.then()编写代码,同样的事情发生了。

0 个答案:

没有答案