├── .gitignore ├── .npmignore ├── Readme.md ├── index.js └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | .git 3 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # deasync-promise 2 | 3 | Transforms async functions into sync with promise API 4 | 5 | ## Usage 6 | 7 | ```js 8 | import deasyncPromise from 'deasync-promise'; 9 | let promiseWhichWillBeResolved = generateSuccessPromise(); 10 | let syncResult = deasyncPromise(promiseWhichWillBeResolved) 11 | 12 | let promiseWhichWillBeRejected = generateRejectedPromise(); 13 | try { 14 | let syncResult = deasyncPromise(promiseWhichWillBeRejected) 15 | } catch (err) { 16 | } 17 | ``` -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var loop = require('deasync').runLoopOnce; 2 | 3 | module.exports = function(promise) { 4 | var result, error, done = false; 5 | promise.then(function(res) { 6 | result = res; 7 | }, function(err) { 8 | error = err; 9 | }).then(function() { 10 | done = true; 11 | }); 12 | while(!done) { 13 | loop(); 14 | } 15 | if (error) { 16 | throw error; 17 | } 18 | return result; 19 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "deasync-promise", 3 | "version": "1.0.1", 4 | "description": "Transform async functions into sync with promise API", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/jakwuh/deasync-promise.git" 12 | }, 13 | "author": "jakwuh ", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/jakwuh/deasync-promise/issues" 17 | }, 18 | "homepage": "https://github.com/jakwuh/deasync-promise#readme", 19 | "dependencies": { 20 | "deasync": "^0.1.7" 21 | }, 22 | "publishConfig": { 23 | "registry": "https://registry.npmjs.org" 24 | } 25 | } 26 | --------------------------------------------------------------------------------