Результат веб-сервиса возвращается как обещание, не может разобрать его - PullRequest
0 голосов
/ 30 августа 2018

Я работаю над проектом на реагировать на нативном языке, для которого я вызываю веб-службу, используя следующую инструкцию:

CallOData(){

        const api = new ServiceOrdersOData();
        const odataValues = api.getServiceOrdersOData();
        console.log(odataValues);
    }

Когда я проверяю этот журнал, я вижу, что результат выглядит так:

enter image description here

Если я запускаю Одату в браузере или Почтальоне, результат будет выглядеть следующим образом:

{
    "d": {
        "results": [
            {
                "__metadata": {
                    "uri": "https://my000000.sapbydesign.com/sap/byd/odata/analytics/ds/Crmsoscb.svc/Crmsoscb('.7~0000000000011DDFBEA73CE3794B5D1A')",
                    "type": "CrmsoscbSvc.CrmsoscbType"
                },
                "ID": ".7~0000000000011DDFBEA73CE3794B5D1A",
                "C_DbaServiceOrg": "00000000-0001-1DDF-B9FF-7D69E6266BF2",
                "C_DicIncCataId": "0000000000000000010010000",
                "C_DicIncCatId": "0000000000000000010014172",
                "C_DocId": "00000000000000000000000000000000001",
                "C_DocPostDate": "/Date(1290729600000)/",
                "C_DocSAgCorLc": "3",
                "C_DocUuid": "00000000-0001-1DDF-BEA7-3CE3794B5D1A",
                "C_DpyBuyerCntry": "US",
                "C_DpyBuyerPoscd": "14204",
                "C_DpyBuyerPty": "00000000-0001-1DDF-BA84-90748A78DCE3",
                "C_DpyBuyerRegn": "NY",
                "C_DpyBuyAbc": "A",
                "C_DpyBuyCity": "Buffalo",
                "C_DpyBuyInds": "42",
                "C_DpyBuyIndscsy": "0005",
                "C_DpyBuyNieid": "",
                "C_DpyProcPty": "00000000-0001-1DEF-BAD7-B58B002BEC36",
                "C_DpySalesUnit": "00000000-0001-1DDF-B9FF-7D69E6266BF2",
                "C_DpySrvsupTeam": "00000000-0001-1DDF-B9FF-7D69E6266BF2",
                "C_DpySrvExTeam": "00000000-0001-1DDF-B9FF-7D69E6266BF2",
                "C_DpySrvPerform": "00000000-0001-1DEF-BAD7-B5BC90EE6C36",
                "C_DroMatProcCat": "00000000-0001-1DEF-BA9F-2DABDB415385",
                "C_DroMatProdTy": "1",
                "C_DroRefoIndmat": "00000000-0001-1DEF-BAEB-6DD8248A2BA6",
                "C_DroRefoMat": "00000000-0001-1DEF-BAEA-3DA13AD047A6",
                "C_DsrProcCataid": "0000000000000000010010000",
                "C_DsrProcCatid": "0000000000000000010014000",
                "C_DsrSrvPrior": "3",
                "C_DsrWarranty": null,
                "C_DttInitMonth": "--11",
                "C_DttInitQuartr": "--Q4",
                "C_DttInitRecDt": "/Date(1290729600000)/",
                "C_DttInitWeekdy": "5",
                "C_DttInitYear": "2010",
                "C_DttInitYrmon": "2010-11",
                "C_DttInitYrquar": "2010-Q4",
                "C_DttInitYrweek": "2010-W47",
                "T_DocName": "Combi 75: Below average heat output",
                "NodeId": "0000000000011DDFBEA73CE3794B5D1A",
                "Count": 1
            }
        ]
    }
}

Итак, в ответе в реагировать я вижу ту же структуру, но организованную странным образом, я вижу, что в пути Promise/_55/_55 он показывает массив, и если я его расширяю, он соответствует содержимому, которое я см. в Почтальон.

Но когда я пытаюсь отобразить это содержимое и увидеть элементы в массиве, я получаю несколько ошибок.

Пока пробовал:

console.log(odataValues.d.results);
console.log(odataValues._55._55.d.results);
console.log(odataValues[0]);

И все они возвращаются Undefined

Чего я очень хочу добиться, так это сопоставить этот контент со списком и заполнить его, но я понятия не имею, как отобразить эту структуру «Обещание».

1 Ответ

0 голосов
/ 30 августа 2018

Вам нужно развернуть обещание так:

const api = new ServiceOrdersOData();
api.getServiceOrdersOData()
.then( odataValues => {
    // Note this function won't be called until the API returns the values
    console.log(odataValues);
})

Более подробную информацию об обещаниях и о том, как они работают, можно найти в Интернете. Мне особенно нравится пост в блоге от Джейка Арчибальда из Google: https://developers.google.com/web/fundamentals/primers/promises

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...