Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- app.LoadA( function cba() {
- app.LoadB( function cbb() {
- ....
- app.LoadC( function cbc() {
- ...
- app.LoadD( function cbd() {
- ...
- } );
- } );
- } );
- } );
- LoadA( cb )
- {
- let url = '.........'; // just an url
- let req = new XMLHttpRequest();
- req.open('GET', url, true);
- req.responseType = 'arraybuffer';
- let lh = this;
- req.onload = function ol(event)
- {
- let arrayBuffer = req.response;
- let loadedObject = Convert( arrayBuffer, ......... );
- cb( loadedObject ); // call, if successed!
- }
- req.send(null);
- }
- ....
- loadA().then(function() {
- loadB().then(function() {
- loadC().then(...
- });
- });
- loadA().then(function() {
- return loadB();
- ).then(...)
- loadA().then(loadB).then(loadC).then(...)
- function wrapInsidePromise(f) {
- return new Promise(function(resolve, reject) {
- f(function() {
- resolve();
- });
- });
- }
- var pLoadA = wrapInsidePromise(app.loadA);
- var pLoadB = wrapInsidePromise(app.loadB);
- ...
- pLoadA().then(pLoadB).then(...);
- async function() {
- await loadA();
- await loadB();
- ...
- let finalResult = await loadN();
- ...
- }
- app = {
- loadA: function() {
- return new Promise((resolve) => {
- console.log('Loading A');
- resolve();
- });
- },
- loadB: function () {
- return new Promise((resolve) => {
- console.log('Loading B');
- resolve();
- });
- },
- // For demonstration, I have coded loadC with a rejection if it fails
- // (Success is based on a random boolean)
- loadC: function () {
- return new Promise((resolve, reject) => {
- console.log('Loading C');
- var success = Math.random() >= 0.5;
- if( success ){
- resolve();
- } else {
- reject('C did not load');
- }
- });
- },
- loadD: function () {
- return new Promise((resolve) => {
- console.log('Loading D');
- resolve();
- });
- }
- };
- // A global function for reporting errors
- function logError(error) {
- // Record the error somehow
- console.log(error);
- }
- app.loadA().then(app.loadB).then(app.loadC, logError).then(app.loadD);
- app.loadA().then(app.loadD).then(app.loadB).then(app.loadC, logError);
Add Comment
Please, Sign In to add comment