Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" type="text/css" />
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-1.6.4.js"></script>
  
  
  <button type="button" class="btn btn-default" id="add_item" onClick="addItemFn()">Add Item</button>
</body>
</html>
 
var list = [];
var interval = null;
var reTryInteval = () => setInterval(reTry, 3000);
var reTry = () => {
  console.log('You are going to running retry');
  console.log(list);
  if (!list.length) {
    console.log('@@@There is no thing to retry, exit retry!!!');
    clearInterval(interval);
  }
}
var addItemFn = () => {
  
  var item = new Date().getTime();
  console.log('You are going to add this item : ' + item);
  list.push(item);
  if (interval) {
    clearInterval(interval);
  }
  
  interval = reTryInteval();
}
var showItemsFn = () => {
  
  console.log(list);
}
var removeItemFn = () => {
  
  list.shift();
}
var targetObj = {};
var targetProxy = new Proxy(targetObj, {
  set: function (target, key, value) {
      console.log(`${key} set to ${value}`);
      target[key] = value;
      return true;
  }
});
var setValueFn = () => {
  var value = new Date().getTime();
  targetProxy.hello_world = value; // console: 'hello_world set to test'
  
}
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers