


How to implement concurrent GET requests for multiple links in Tampermonkey and determine the return results in sequence?
Concurrent GET requests and result judgments for multiple links in Tampermonkey
This article discusses how to efficiently handle GET requests for multiple links in Tampermonkey scripts and make conditional judgments based on the returned results. The goal is to initiate multiple GET requests concurrently, and once the conditions are met, the subsequent requests are immediately stopped and the result is returned.
Because GM_xmlhttpRequest
lacks a native cancel request mechanism, it is impossible to directly interrupt the initiated request. Therefore, we will adopt concurrent requests and implement conditional judgment and request termination through Promise and Promise.race
.
Solution: Concurrent requests and Promise.race
This scheme initiates all GET requests at the same time, and uses Promise.race
to find the first request result that meets the condition.
Code example:
function fetchUrl(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, onload: (response) => { resolve({ url: url, data: response.responseText }); }, oneError: (error) => { reject(error); } }); }); } async function main() { const urls = [ "https://example.com/1", "https://example.com/2", "https://example.com/3" ]; const promises = urls.map(url => fetchUrl(url)); try { const result = await Promise.race(promises); // Determine whether the result meets the conditions, for example: if (result.data.includes("success")) { console.log("The condition is satisfied, result:", result); return result; } else { console.log("The first request does not meet the condition"); // You can process subsequent requests here, or directly return null; // or handle other results } } catch (error) { console.error("Request error:", error); return null; } } main();
This code first defines a fetchUrl
function, initiates a GET request using GM_xmlhttpRequest
and returns a Promise. main
function creates a Promise array containing all URLs, and uses Promise.race
to execute these Promise concurrently. Promise.race
returns the result of the first completed Promise. The code contains an example conditional judgment ( result.data.includes("success")
), which you can modify according to actual needs. If the first request does not meet the conditions, the remaining requests can be processed further or returned directly as needed. Error handling is also included in try...catch
block.
Important Note: Although this solution is implemented concurrently, it still depends on the network status. If all requests take longer, the efficiency improvement is limited. For large numbers of URLs, consider batch processing or more advanced concurrency control strategies. Please make sure to replace the sample URL for your actual link. This code requires Tampermonkey or similar user script manager.
The above is the detailed content of How to implement concurrent GET requests for multiple links in Tampermonkey and determine the return results in sequence?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

WorldCoin (WLD) stands out in the cryptocurrency market with its unique biometric verification and privacy protection mechanisms, attracting the attention of many investors. WLD has performed outstandingly among altcoins with its innovative technologies, especially in combination with OpenAI artificial intelligence technology. But how will the digital assets behave in the next few years? Let's predict the future price of WLD together. The 2025 WLD price forecast is expected to achieve significant growth in WLD in 2025. Market analysis shows that the average WLD price may reach $1.31, with a maximum of $1.36. However, in a bear market, the price may fall to around $0.55. This growth expectation is mainly due to WorldCoin2.

Factors of rising virtual currency prices include: 1. Increased market demand, 2. Decreased supply, 3. Stimulated positive news, 4. Optimistic market sentiment, 5. Macroeconomic environment; Decline factors include: 1. Decreased market demand, 2. Increased supply, 3. Strike of negative news, 4. Pessimistic market sentiment, 5. Macroeconomic environment.

Exchanges that support cross-chain transactions: 1. Binance, 2. Uniswap, 3. SushiSwap, 4. Curve Finance, 5. Thorchain, 6. 1inch Exchange, 7. DLN Trade, these platforms support multi-chain asset transactions through various technologies.

In the bustling world of cryptocurrencies, new opportunities always emerge. At present, KernelDAO (KERNEL) airdrop activity is attracting much attention and attracting the attention of many investors. So, what is the origin of this project? What benefits can BNB Holder get from it? Don't worry, the following will reveal it one by one for you.

The steps to draw a Bitcoin structure analysis chart include: 1. Determine the purpose and audience of the drawing, 2. Select the right tool, 3. Design the framework and fill in the core components, 4. Refer to the existing template. Complete steps ensure that the chart is accurate and easy to understand.

Suggestions for choosing a cryptocurrency exchange: 1. For liquidity requirements, priority is Binance, Gate.io or OKX, because of its order depth and strong volatility resistance. 2. Compliance and security, Coinbase, Kraken and Gemini have strict regulatory endorsement. 3. Innovative functions, KuCoin's soft staking and Bybit's derivative design are suitable for advanced users.

Aavenomics is a proposal to modify the AAVE protocol token and introduce token repos, which has implemented a quorum for AAVEDAO. Marc Zeller, founder of the AAVE Project Chain (ACI), announced this on X, noting that it marks a new era for the agreement. Marc Zeller, founder of the AAVE Chain Initiative (ACI), announced on X that the Aavenomics proposal includes modifying the AAVE protocol token and introducing token repos, has achieved a quorum for AAVEDAO. According to Zeller, this marks a new era for the agreement. AaveDao members voted overwhelmingly to support the proposal, which was 100 per week on Wednesday

Cryptocurrency data platforms suitable for beginners include CoinMarketCap and non-small trumpet. 1. CoinMarketCap provides global real-time price, market value, and trading volume rankings for novice and basic analysis needs. 2. The non-small quotation provides a Chinese-friendly interface, suitable for Chinese users to quickly screen low-risk potential projects.
