JavaScript中怎么使用generator函數(shù)同步執(zhí)行ajax任務(wù),相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
襄州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
具體內(nèi)容如下
function request(url, callback) { fetch(url, {mode: 'cors', credentials: 'include', headers: new Headers({ 'X-Requested-With': 'XMLHttpRequest' })}) .then(response => response.text()) .then(text => { console.log(url); console.log(text); callback(text); }) .catch((e) => console.log(e)); } var iterator = null; function getData(src){ request(src, function(response){ iterator.next(JSON.parse(response)); }) } function getTpl(src){ request(src, function(response){ iterator.next(response); }); } // 同步任務(wù) function render(data, tpl){ for(var i in data) { tpl = tpl.replace("${"+i+"}", data[i]); } return tpl; } // 主邏輯 var getArticles = function* (src){ console.log('begin') var data = yield getData(src) var tpl = yield getTpl(data.tpl) var res = render(data, tpl) console.log(res) } iterator = getArticles('data.json') // 開始執(zhí)行 iterator.next() // 異步任務(wù)模型
看完上述內(nèi)容,你們掌握J(rèn)avaScript中怎么使用generator函數(shù)同步執(zhí)行ajax任務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!