gpt4 book ai didi

javascript - 使 eval 同步运行异步代码

转载 作者:行者123 更新时间:2023-11-28 02:23:55 25 4
gpt4 key购买 nike

我将 JavaScript 片段作为字符串传递,该字符串被调用以获取数据数组(csv 文件)。我只想在完成第一行后评估下一行:

CoffeeScript(编译为 JavaScript 并在浏览器中运行):

for row in rest
map = makeMap header,row
json = JSON.stringify map
eval "((#{fn})(#{json}))"

Javascript 片段(存储为字符串):

function(map) {
console.log(map.customer_id);
$.ajax("http://localhost:3000/data/" + map.customer_id,
function(data) { console.log(data);});
}

如何实现 Jasmine BDD 或其他 JavaScript 测试框架中的 done()

最佳答案

根据 $.ajax 函数来自哪个框架,您也许可以向它传递一个参数以使 AJAX 同步。

但是,并非所有异步函数都可以选择转为异步模式。在这种情况下,唯一的方法是让它们调用回调(硬编码或作为参数)。不幸的是,您需要将该 for 循环重写为递归函数(或使用可以为您完成此操作的异步库)。

var i = 0;
function processItems(i){
if(i >= rest.length){
return whatToDoNext();
}else{
runMyAsyncCode(function(){
proccessItems(i+1);
})
}
}

关于javascript - 使 eval 同步运行异步代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com