Promise - MetaTrader 5 Library | MT5 EA Download - MetaTrader 5 Resources
npm mymql5-promise
Example of commitment :
#include "timer.mqh" #include "index.mqh" blank initialization () { new Promise(printAndTimoutResolve, "111" ) .then(printAndReject, "222" ) // then - run if the previous promise was resolved. .ccatch(printAndResolve, "333" ) // ccatch - run if the previous promise was rejected . .ccatch(printAndResolve, "444" ) .ccatch(printAndResolve, "555" ) .then(printAndResolve, "666" ) .finally(printAndResolve, "end" ) // Finally - run anything . destroy(); // Clear memory after executing all Promises. These Promises print ( "start" ); { print ( "Promise to resolve all" + parameters); }; Blank printAndTimoutResolve( Oolong promise ID, string previous result, string parameters) { print ( "Print and timeout resolution" + parameters); Timer::setTimout(resolveByIdStr, 2000 , string (promiseId)); }; Blank is resolved by IdStr ( thin string id) { Promise::resolveById( Oolong (ID)); } Blank is printed and resolved ( Oolong promise ID, string previous result, string parameter) { print ( "Print and solve" + parameters); Promise::resolveById(promiseId); }; Blank print and reject ( Oolong promise ID, string previous result, string parameters) { print ( "Print and reject" + parameters); Promise::rejectById(promiseId); };
For example, promise:all:
blank initialization () { Promise * list1[] = { New promise (printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Commitment 1.1" ) , New promise (print and reject, "Promise 2" ), New promise (printAndTimoutResolve, "Promise 3" ), }; Promise::all(List 1, promiseAllResolve) //Resolve if all promises are resolved.then (printAndResolve, "Promise::Everything is resolved" ) .ccatch(printAndResolve, "Promise::Reject All" ) . destroy(); //remove all promises //printAndTimoutResolve Promise 1 //printAndReject Promise 2 //printAndTimoutResolve Promise 3 //printAndResolve Promise::all returned rejected };
Commitment Example: Race:
blank initialization () { Promise * list2[] = { New promise (printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Commitment 1.1" ) , New promise (print and reject, "Promise 2" ), New promise (printAndTimoutResolve, "Promise 3" ), }; Promise::race(list2, printAndResolve, "Promise::race" ) // Resolve/reject after first Promise .then(printAndResolve, "Promise::race resolved" ) .ccatch(printAndResolve, "Promise::match rejected" ) . destroy(); // printAndTimoutResolve Promise 1 // printAndReject Promise 2 // printAndTimoutResolve Promise 3 // Promise::race rejected };
For example, promise: any:
blank initialization () { Promise * list3[] = { New promise (printAndTimoutResolve, "Promise 1" ) .then(printAndTimoutResolve, "Commitment 1.1" ) , New promise (print and reject, "Promise 2" ), New promise (printAndTimoutResolve, "Promise 3" ), }; Promise::any(list3, printAndResolve, "Promise::any" ) .then(printAndResolve, "Promise::any resolution" ) .ccatch(printAndResolve, "Promise::any rejection" ) . destroy(); // printAndTimoutResolve Promise 1 // printAndReject Promise 2 // printAndTimoutResolve Promise 3 // printAndResolve Promise::any // printAndResolve Promise::any resolved };
Attachment download
📎 index.mq5 (2.81 KB)
📎 timer.mqh (4.42 KB)
📎 index.mqh (13.9 KB)
Source: MQL5 #54412
💡 Featured Recommendations
✍️ Latest by the author
- •
- •
- •
- •
- •
- •
📌 Popular topics
- •
- •
- •
- •
- •
- •
- •
- •
🔗 You May Be Interested In
- •
- •
- •
- •
- •
- •