Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. // fs.readFile('a.txt', (d) => {console.log('d')})
  2. // =>
  3. // promisify(fs.readFile)('a.txt').then((d) => console.log(d))
  4.  
  5. function promisify(method) {
  6. const ctx = this
  7. return function() {
  8. let args = Array.prototype.slice.call(arguments)
  9.  
  10. return new Promise((resolve, reject) => {
  11. args.push((() => {
  12. return function (err, result) {
  13. if (err) {
  14. return reject(err)
  15. }
  16. return resolve(result)
  17. }
  18. })())
  19. method.apply(ctx, args)
  20. })
  21. }
  22. }
  23.  
  24. const fs = require('fs')
  25.  
  26. const fp = promisify(fs.readFile)
  27. fp('./test.html', 'utf-8').then((d) => {
  28. console.log(d, 'dd')
  29. }).catch(err => console.log(err))
  30.  
  31.  
  32. // promise for miniprogame
  33. function promisify(callback) {
  34. return (params = {}) => {
  35. return new Pormise((reslove, reject) => {
  36. params = Object.assign(params, {
  37. success: function(result) {
  38. reslove(result)
  39. },
  40. fail: function(err) {
  41. reject(err)
  42. }
  43. })
  44. })
  45. }
  46. }
  47. const pwx = new Proxy({}, {
  48. get(target, name) {
  49. if (name in wx) {
  50. return promisify(wx[name])
  51. }
  52. }
  53. })
  54. pwx.login().then()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement