Возврат ответа от fetch к функции, которая его вызвала - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть код, похожий на этот:

function getData(query){
    fetch('some-url').then((res)=>res.json())
    .then((res)=>{
      return 'string'+res.data
    })

Вышеуказанная функция

var data = getData('text');

Я хочу, чтобы функция getData возвращала измененную строку для сохранения ее в переменных данных.Как мне этого добиться?

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Вы можете использовать async/await для достижения желаемого результата

function getData(query){
    return fetch('some-url').then((res)=>res.json())
    .then((res)=>{
      return 'string'+res.data
    })

Тогда:

var data = await getData('text'); //You will get your modified string in the data.
0 голосов
/ 26 декабря 2018

fetch является Обещанием, и вы можете изменять данные только в методе .then после того, как fetch вернул ваши данные.

fetch('some-url')
    .then((res) => res.json()) 
    .then((res) => 'string'+res.data)
    .then((res) => /* some code */) // in this string you can achieve data.
0 голосов
/ 26 декабря 2018
function getData(query){
    return  fetch('some-url').then((res)=>res.json())
    .then((res)=>{
      return 'string'+res.data
    })

и назовите это как

    getData('text').then(function(res){
       //your code should be here 
       var data=res;
    });
...