Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-6249

Investigate changes in NODE-2014: Pass through results of given lambda in withTransaction and withSession

    • Type: Icon: Investigation Investigation
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • No version
    • Affects Version/s: None
    • Component/s: None
    • Not Needed

      The provided withTransaction and withSession helpers make running transactions very simple, but it's difficult to get the results of the operation back.

      Both functions take a lambda as an argument that must return a Promise, but the functions don't pass through the value that the promise resolves to. This means that I need to create a wrapper function like this in order to get the return value:

      runTransaction(writeFunc) {
      
      	let writeResults = null;
      
      	const txnFunc = session => (
      
      		writeFunc(session)
      			.then((results) => { writeResults = results; })
      	);
      
      	return this.client.withSession(session => session.withTransaction(txnFunc)))
      		.then(() => {
      
      			return writeResults;
      		});
      }
      

      It's not the end of the world, but it would be nice if these functions could just pass through the results.

            Assignee:
            Unassigned Unassigned
            Reporter:
            dbeng-pm-bot PM Bot
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: