第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在運(yùn)行另一個(gè)函數(shù)之前等待 fetch 完成

如何在運(yùn)行另一個(gè)函數(shù)之前等待 fetch 完成

婷婷同學(xué)_ 2022-10-27 15:39:52
我目前正在嘗試創(chuàng)建一個(gè)帶有標(biāo)記的地圖,如果用戶之前曾表示該標(biāo)記是他們的“最愛”之一,我希望某些標(biāo)記由不同的圖標(biāo)表示。為此,我嘗試使用首先獲取然后將部分?jǐn)?shù)據(jù)推送到數(shù)組中的函數(shù),然后我使用另一個(gè)函數(shù)來創(chuàng)建地圖并用標(biāo)記填充它。我希望第二個(gè)函數(shù)僅在第一個(gè)函數(shù)完成后運(yùn)行。不幸的是,每次我運(yùn)行代碼時(shí),所有標(biāo)記都是相同的,并且似乎應(yīng)該包含所有收藏站點(diǎn)的 ID 的數(shù)組是空的。我認(rèn)為這意味著等待無法正常工作,因?yàn)榈谝粋€(gè)函數(shù)尚未完成運(yùn)行。代碼是:var favouriteStops = []async function firstFunction(){    fetch("api/favstop/")    .then(response => {        return response.json();    })    .then(data => {    for(var i = 0; i<= data.length; i++){        favouriteStops.push(data[i].stopid)     } })};function addFavStop (){        console.log(favouriteStops)    }async function initMap(){    await firstFunction();    //Map options    var options = {        zoom: 15,        center: {lat:53.3477, lng:-6.2800},        styles: mapStyle,        disableDefaultUI: true    }    //Creating the map     var map = new google.maps.Map(document.getElementById('map'), options);    //Add marker function    function addMarker(stop){        var coords = {lat: stop.lat, lng: stop.long}        //Style for the icon        if (favouriteStops.includes(stop.id)){            var icon = {                url: '../static/images/favourite.png',                scaledSize: new google.maps.Size(12, 12)            };        } else {            var icon = {                url: '../static/images/bus-stop.png',                scaledSize: new google.maps.Size(12, 12)            };            console.log(favouriteStops, stop.id)        }        var marker = new google.maps.Marker({            position: coords,            map:map,            icon: icon,            scaledSize: new google.maps.Size(1, 1),            name:stop.name,            id:stop.id        })        var infoWindow = new google.maps.InfoWindow({            content: marker.name + '<br>' + '<button htmlType="submit" onClick=addFavStop()> Add Stop As Favourite </button>'        });        marker.addListener('click', function(){            infoWindow.open(map, marker);        });    }
查看完整描述

3 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

要await真正等到fetch完成,您應(yīng)該返回承諾:


async function firstFunction(){

  return fetch("api/favstop/")

  .then(response => {

    return response.json();

  })

  .then(data => {

    for(var i = 0; i<= data.length; i++){

      favouriteStops.push(data[i].stopid)

    }

  })

};


查看完整回答
反對(duì) 回復(fù) 2022-10-27
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

await您可以通過使用inside firstFunctionlike輕松解決此問題:


async function firstFunction() {

  const response = await fetch("api/favstop/")

  const data = await response.json();

  for (var i = 0; i <= data.length; i++) {

    favouriteStops.push(data[i].stopid)

  }

};

或者,只返回如下承諾:


async function firstFunction() {

  return fetch("api/favstop/")

    .then(response => {

      return response.json();

    })

    .then(data => {

      for (var i = 0; i <= data.length; i++) {

        favouriteStops.push(data[i].stopid)

      }

    })

};


查看完整回答
反對(duì) 回復(fù) 2022-10-27
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

您不需要在異步函數(shù)中使用承諾鏈。事實(shí)上,它有點(diǎn)違背了整個(gè)目的。所以,你的異步函數(shù)看起來有點(diǎn)像這樣:


async function firstFunction(){

   const fetcher = await fetch("api/favstop/");

   const data = await fetcher.json();

   

   for(var i = 0; i<= data.length; i++){

      favouriteStops.push(data[i].stopid)

   }

};


查看完整回答
反對(duì) 回復(fù) 2022-10-27
  • 3 回答
  • 0 關(guān)注
  • 326 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)