gpt4 book ai didi

javascript - 无法同步功能

转载 作者:行者123 更新时间:2023-12-02 23:35:30 25 4
gpt4 key购买 nike

我正在尝试同步地一一执行这些函数。

var subtasks = ['Site', 'Draw', 'Material', 'Conduction', 'Cable', 'Install', 'Foundation']

function clickMe() {
return new Promise(resolve => {
jQuery("#addtoptasksubmit").trigger("click"); // triggering the button click
resolve("done click");
});
}

function typeWord(word) {
return new Promise(resolve => {
jQuery("#todotask").val(word); // input
resolve("done type");
});
}

function createSubTask() {
return new Promise(res => {
jQuery('#todotask').focus();
res("done")

})
};

function startLoop(i) {
new Promise(resolve => {
var promise = createSubTask();
promise.then(resolve => {
var typePromise = typeWord(subtasks[i]);
typePromise.then((resolve) => {
var clickPromise = clickMe();
clickPromise.then((resolve) => {
console.log(resolve);
});
});
});
})
}

let i = 0;
let prom = startLoop(i);

prom.then((res) => {
startLoop(i++);
})

代码无法正常工作,而且我想自动增加 i 。 For 循环没有出现。

我在 Chrome 上尝试过 for 循环和递归异步函数。

最佳答案

您的 startLoop(i) 函数不需要为新的 Promise() 调用提供 return 语句吗?我必须想象一下:

// prom = undefined as startLoop never returns anything
let prom = startLoop(i);

像这样更改您的代码:

// Current code from description
function startLoop(i) {
new Promise(resolve => {

// Fixed code
function startLoop(i) {
return new Promise(resolve => {

关于javascript - 无法同步功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56305695/

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