Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. let Promise = require("bluebird");
  4.  
  5. function wrap(func) {
  6.     let str = func.toString();
  7.     let args = str.substring(str.indexOf("(") + 1, str.indexOf(")")).split(",");
  8.     str = str.substring(str.indexOf("{") + 1, str.length - 1);
  9.     str = "try {" + str + "}catch(err){console.error(err);console.log('error\\n');}";
  10.     args.push(str);
  11.     return Promise.coroutine(Object.getPrototypeOf(function*() {}).constructor.apply(null, args));
  12. }
  13.  
  14. wrap(function*(n) {
  15.     yield Promise.reject(n);
  16. })(6);
  17.  
  18. wrap(function*(x) {
  19.     var num = yield Promise.resolve(x);
  20.     return num;
  21. })(4).then(console.log);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement