gpt4 book ai didi

for循环中的javascript异步调用

转载 作者:行者123 更新时间:2023-12-03 07:42:40 26 4
gpt4 key购买 nike

菜鸟问题。它可能是重复的,但我无法理解如何重组代码。我应该如何构建以下代码以便控制台打印以下内容:

这里1这里2这里1这里2这里1这里2

现在开始了:

这里1这里1这里1这里2这里2这里2

感谢您的帮助。

var record;

for ( i = 0; i < 3; i++ ) {
sendRequest(selectTestsToRun('something1'), 'someTest1');
}

this.someTest1 = function(resObj, testToRun){
console.log('Here1');
record = resObj.value;
sendRequest(selectTestsToRun('something2'), 'someTest2');
};

this.someTest2 = function(resObj, testToRun){
console.log('Here2');
};

function selectTestsToRun(toDo){
var data;

switch( toDo) {
case 'something1':
data = 'postMessage';
break;

case 'something2':
data = 'postMessage'+record;
break;
}

return data;
}

function sendRequest(data , toDo ){

GM_xmlhttpRequest({
method: 'POST',
url: url,
data: data,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
onload: function(response) {
var resObj = JSON.parse(response);
this[toDo](resObj,toDo);
}
});

}

最佳答案

您根本不需要 for 循环。相反,您希望 someTest2 启动“循环”的下一次迭代:

var i = 0;
next();

function next() {
if (i < 3) {
sendRequest(selectTestsToRun('something1'), 'someTest1');
++i;
}
}

this.someTest2 = function(resObj, testToRun){
console.log('Here2');
next(); // <==== Note
};

在上面,我已将其烘焙到 someTest2 中,但您当然可以传递回调以将循环与 someTest2 解耦。

关于for循环中的javascript异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35345601/

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