gpt4 book ai didi

javascript - 更改方法以在 typescript 中使用 Promise.all

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:25 26 4
gpt4 key购买 nike

我有以下方法:

public static zoomInMap(times: number): void {

for (let i = 0; i < times; i++) {
let zoomInButton = element(by.css('#main > cc-map > div.google-map-base- container-inner > div > div.gmnoprint.gm-bundled-control.gm-bundled-control-on-bottom > div:nth-child(1) > div > div:nth-child(1)'));
zoomInButton.click();
browser.sleep(Config.ZOOM_ANIMATION_TIMEOUT).then(() => {
// console.log('Map Zoomed In');
});
}

我想让它返回一个 Promise 。我想使用 Promise.all喜欢:

 public static zoomInMap(times: number): Promise<any> {

return Promise.all( ? ) // ? I do not know how to do it
for (let i = 0; i < times; i++) {
let zoomInButton = element(by.css('#main > cc-map > div.google-map-base-container-inner > div > div.gmnoprint.gm-bundled-control.gm-bundled-control-on-bottom > div:nth-child(1) > div > div:nth-child(1)'));
zoomInButton.click();
browser.sleep(Config.ZOOM_ANIMATION_TIMEOUT).then(() => {
// console.log('Map Zoomed In');
});
}
}

我应该如何修改代码以使用 Promise.all 。抱歉这个蹩脚的问题。

最佳答案

将您的 promise 收集到一个数组中,然后对该数组调用 Promise.all 并返回结果,即聚合的 promise :

public static zoomInMap(times: number): Promise {
let promises = [];
for (let i = 0; i < times; i++) {
let zoomInButton = element(by.css('#main > cc-map > div.google-map-base- container-inner > div > div.gmnoprint.gm-bundled-control.gm-bundled-control-on-bottom > div:nth-child(1) > div > div:nth-child(1)'));
zoomInButton.click();
promises.push(browser.sleep(Config.ZOOM_ANIMATION_TIMEOUT).then(() => {
// You can do something here if you like, or remove the `then`
}));
}
return Promise.all(promises);
}

我不太喜欢 TypeScript,您可能需要调整数组的声明。我已将函数的返回类型从 void 更改为 Promise

关于javascript - 更改方法以在 typescript 中使用 Promise.all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40158448/

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