Thursday, 11 January 2018

javascript reduce functioon notes

it takes 3 parts

all return data.
item current data
index current index
reduce take

reduce(function(all ,item ,index){},starting point);

Wednesday, 10 January 2018

dynamodb throughput exception

There are 2 ways you can handle this problem:
  1. Increase level of throughput (for this option you have to pay more).
  2. The way that normally we have to do at some points is that we need to implement the logic at application level. For instance, call dynamoDB to check for an exception. If throughput is exceeded, sleep for some seconds and call the same query again (this is what we have implemented in our app).





https://stackoverflow.com/questions/31468379/how-to-solve-throughput-error-for-dynamodb

promise.all() example

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all



var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 100, 'foo');
});

var promise4 = Promise.resolve(3);
var promise5 = 55;
var promise6 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 10000, 'foo');
});

Promise.all([promise1, promise2, promise3]).then((data)=> {
  return call();
}).then((data)=> {
console.log("---",data);
});

function call(){
return Promise.all([promise4, promise5, promise6]);
}

=========================================

var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'foo');
});

var promise4 = Promise.resolve(3);
var promise5 = 55;
var promise6 = new Promise(function(resolve, reject) {
setTimeout(resolve, 10000, 'foo');
});

Promise.all([promise1, promise2, promise3]).then((data)=> {
let a= call();
console.log('---a',a);
return a;
}).then((data)=> {
console.log("---b",data);
});

function call(){
return Promise.all([promise4, promise5, promise6]).then((data1)=>{
console.log('data1',data1);
return data1[0];
})
}
====================================how promis.all() work=========
var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'foo');
});
var promise4 = Promise.resolve(3);
var promise5 = Promise.resolve(55);
var promise6 = new Promise(function(resolve, reject) {
setTimeout(resolve, 10000, 'pawan');
});
var promise7 = new Promise(function(resolve, reject) {
setTimeout(resolve, 1000, 'foo');
});


Promise.all([promise1, promise2, promise3]).then((data)=> {
let abc=call();
console.log('--abc---',abc);
return call();
}).then((data)=> {
console.log("---123",data);
});

function call(){
return Promise.all([promise5,promise6,promise4,promise7]).then((res)=>{
return datasend = res;
});
}

// expected output: Array [3, 42, "foo"]
if you want to get promise all result in expected order then all the promise function and store that promise in a variable and pass that variable in promise all([a,b,c])in order you want.
=============note if don't want to preserve promise resolve order then you can call your promise inside promise.all([]) ;====================

var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'foo');
});



Promise.all([promise1, promise2, promise3]).then((data)=> {
let abc=call();
console.log('--abc---',abc);
return call();
}).then((data)=> {
console.log("---123",data);
});

function call(){
return Promise.all([
Promise.resolve(3),
Promise.resolve(55), new Promise(function(resolve, reject) {
setTimeout(resolve, 10000, 'pawan');
}),
new Promise(function(resolve, reject) {
setTimeout(resolve, 1000, 'foo');
})
]).then((res)=>{
return datasend = res;
});
}

// expected output: Array [3, 42, "foo"]