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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數(shù)組 forEach 循環(huán)中的承諾

數(shù)組 forEach 循環(huán)中的承諾

冉冉說 2023-04-14 14:49:42
我有一個這樣的數(shù)組:var ids = [8372839402, 8392615782, 3677281302];插入的是 id 值。基于這個 ID,我必須從數(shù)據(jù)庫中為每個 ID 獲取一些信息。基本上我通過使用位于 db.js 中的以下函數(shù)獲取數(shù)據(jù):function getdata(get_command) {  var request = new XMLHttpRequest();  var params = params + 'command=' + encodeURIComponent(get_command) + '&';  console.log(params);  currentpromise = new Promise(function(resolve, reject) {    request.open('POST', './php/get_data.php', true);    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    request.onreadystatechange = function() {      if (request.readyState === XMLHttpRequest.DONE) {        if (request.status === 200) {          var response = JSON.parse(request.response);          resolve(response);        }        else {          resolve({error: 'Cant connect!'});        }      }    };    request.send(params);  });}      而不是在我的 main.js 中,我像這樣使用這個函數(shù):var user_id = 'r82h9hfew89hf9983f8d9';var currentpromise;var obj = getdata('SELECT username, email FROM users WHERE id=' + user_id);      currentpromise.then(function(obj) {        if (obj.data[0] == 'false') {        }        else {           //succesfully go on        }      });     但是當我在數(shù)組中使用它時它不會工作。從那開始,我在 var currentpromise 上有多個承諾,或者每次在數(shù)組 forEach 中調(diào)用 getdata 函數(shù)來覆蓋它們。如何解決我的問題以無錯誤地循環(huán)遍歷數(shù)組?ids.forEach(function(id) {    var obj = getdata('SELECT name FROM data WHERE id=' + id);      currentpromise.then(function(obj) {        if (obj.data[0] == 'false') {        }        else {           //succesfully do next step           var obj = getdata('SELECT version FROM vers WHERE name=' + obj.data[0]['name']);           currentpromise.then(function(obj) {             if (obj.data[0] == 'false') {             }             else {               //succesfully finished with one id             }           });          }      });  });    希望有人可以幫助我。提前致謝。
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經(jīng)驗 獲得超4個贊

ForEach本質(zhì)上是同步的,你不應(yīng)該在forEach循環(huán)中使用 promises 或任何異步代碼,因為它會簡單地遍歷數(shù)組而不等待 promise 得到實現(xiàn)。您可以改用for await...of循環(huán)。



查看完整回答
反對 回復(fù) 2023-04-14
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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