Я вызываю выборку на сервере и пытаюсь использовать данные JSON из нее, не вызывая ошибки.
Это выборка, которая работает нормально и возвращает JSON, если Я удаляю проблемную строку c ниже.
fetch("https://dash.stannp.com/api/v1/postcards/create?api_key=" + secret + "&", requestOptions)
.then(response => response.text())
.then(result => {
let item = result
console.log("item: " + item)
//this line causes an error
console.log("pdf: " + item.data.pdf)
return (item)
})
Строка console.log("item: " + item)
записывает это так:
item: {
"success":true,
"data": {
"pdf": "https:\/\/dash.stannp.com\/api\/v1\/storage\/get\/rum\/1588348478\/pdf-samples\/7476-cda247f3-c634-43bf-8d03-731908549fb1-A6-4add27e8-b08f-4495-846b-7d904e.pdf",
"id":"0",
"created":"2020-05-01T15:54:38+00:00",
"format":"A6",
"cost":"0.59"
}
}
пока все хорошо, но затем строка console.log("pdf: " + item.data.pdf)
, которая сразу после первого возвращает ошибку.
Что я делаю не так, и что мне нужно сделать, чтобы иметь возможность использовать PDF?
В случае, если это уместно, я думаю, что у меня есть некоторые проблемы с обещаниями, так как возврат срабатывает до завершения извлечения.
Полный код, если он полезен:
export function previewStannpSingleCard2(card) {
return getSecret("stannp_API")
.then((secret) => {
var myHeaders = {
"Content-Type": "application/json"
}
var myBody = JSON.stringify({
"size": "A6",
"test": "true",
"template": "69185",
"front": card.front,
"recipient": {
"lastname": card.recipient,
"address1": card.address1,
"address2": card.address2,
"town": card.town,
"postcode": card.postcode,
"country": card.country, //NB GB / US
"author_1": card.author1,
"author_2": card.author2,
"author_3": card.author3,
"author_4": card.author4,
"author_5": card.author5,
"signature": card.fullSignature,
"small_signature": card.smallSignature,
"text_block_1": card.textBlock1,
"text_block_2": card.textBlock2,
"text_block_3": card.textBlock3,
"text_block_4": card.textBlock4,
"text_block_5": card.textBlock5,
"title_text_1": card.titleText1,
"fancy_text_1": card.fancyText1,
"left_heading_1": card.leftHeading1,
"right_heading_1": card.rightHeading1,
"right_block_2": card.rightBlock2
}
})
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: myBody,
redirect: 'follow'
};
fetch("https://dash.stannp.com/api/v1/postcards/create?api_key=" + secret + "&", requestOptions)
.then(response => response.text())
.then(result => {
let item = result
console.log("item: " + item)
//console.log("pdf: " + item.data.pdf)
return (item)
})
.catch(error => console.log('error', error));
})
}
Спасибо