Logic Javascript代码逻辑:发送数据,然后从Google电子表格中获取数据

Logic Javascript代码逻辑:发送数据,然后从Google电子表格中获取数据,logic,Logic,我对Javascript比较陌生,我的第一个项目之一是一个在线调查,它提出一个问题,将回答存储在谷歌电子表格中,然后检索收集到的数据,在页面上绘制一个饼图来说明调查结果。除了我编写的代码无法检索最近保存的投票结果外,我正在使所有内容正常工作。例如,我第一次使用投票时,我看到投票结果(对投票问题的回答是/否)显示在谷歌电子表格中,但不会发送回创建图表。下次使用轮询时,我会看到新的轮询结果添加到上一个轮询结果中,但只返回上一个轮询结果。换句话说,是/否民调结果的收集总是比总数少一个,最新的一个不会被

我对Javascript比较陌生,我的第一个项目之一是一个在线调查,它提出一个问题,将回答存储在谷歌电子表格中,然后检索收集到的数据,在页面上绘制一个饼图来说明调查结果。除了我编写的代码无法检索最近保存的投票结果外,我正在使所有内容正常工作。例如,我第一次使用投票时,我看到投票结果(对投票问题的回答是/否)显示在谷歌电子表格中,但不会发送回创建图表。下次使用轮询时,我会看到新的轮询结果添加到上一个轮询结果中,但只返回上一个轮询结果。换句话说,是/否民调结果的收集总是比总数少一个,最新的一个不会被发回。我已经研究了我的代码几天了,我根本看不到逻辑缺陷。我在下面粘贴了相关代码,希望有人能发现我的错误。当通过单击页面上的按钮提交“是/否”响应时,它将运行。提前感谢您的帮助。顺便说一句,我很确定这个项目将在下一个实现中使用node.js,但我真的很想了解当前代码的错误

<script>
    
    var yesTotal=0;
    var noTotal=0;
    var voteArray=[];
    var url = 'https://api.sheety.co/<specific URL for spreadsheet data>';
    

// handle click button
        btn.onclick = function () {
            const rbs = document.querySelectorAll('input[name="choice"]');
            let selectedValue;
            for (const rb of rbs) {
                if (rb.checked) {
                    selectedValue = rb.value;
                    //break;
                }
            }
    
            var formObject =  {"sheet1": 
                {"question1": selectedValue 
                }};
    
    
        sendData();
    
        fetchData();
    
//Send Selected Value to Sheety
    
    async function sendData(){
            
            await fetch(url, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(formObject) 
            })
            .then((response) => response.json())
            .then(json => {
                // Do something with object
                //console.log(formObject);
            });
    };
    
    
// Fetch data from spreadsheet
    
    function fetchData(){
            fetch(url)
            .then((response) => {
                return response.json()
            })
             .then((data) => {
                console.log(data);
                voteArray=data;
    
        for (var i = 0; i < voteArray.sheet1.length; i++) {
            if (voteArray.sheet1[i].question1 == "yes") {
                yesTotal = yesTotal+1;
                } else {
                noTotal = noTotal+1;
                }
    }
        console.log(yesTotal, noTotal);
                
    
    })
    
    };
</script>

var yesTotal=0;
var noTotal=0;
var voteArray=[];
var url='1〕https://api.sheety.co/';
//手柄点击按钮
btn.onclick=函数(){
const rbs=document.querySelectorAll('input[name=“choice”]”);
让选择的值;
用于(苏格兰皇家银行的常数rb){
如果(rb.选中){
selectedValue=rb.value;
//中断;
}
}
var formObject={“sheet1”:
{“问题1”:selectedValue
}};
sendData();
fetchData();
//将所选值发送到Sheety
异步函数sendData(){
等待获取(url{
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”
},
正文:JSON.stringify(formObject)
})
.then((response)=>response.json())
。然后(json=>{
//用物体做某事
//console.log(formObject);
});
};
//从电子表格中获取数据
函数fetchData(){
获取(url)
。然后((响应)=>{
返回response.json()
})
。然后((数据)=>{
控制台日志(数据);
voteArray=数据;
对于(变量i=0;i