Created
December 10, 2023 08:48
-
-
Save gitSambhal/3301803ee69c85f370b4403802ff056c to your computer and use it in GitHub Desktop.
Revisions
-
gitSambhal created this gist
Dec 10, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,51 @@ const deasync = require('deasync') const axios = require('axios') const cp = require('child_process'); function promiseToSync(func) { let isDone = false; let resp func().then(data => { isDone = true; resp = data }) deasync.loopWhile(() => !isDone) return resp; } function callbackToSync(func) { return deasync(func) } const log = console.log; console.log = function () { log.apply(console, [new Date(), ...arguments]); }; const getData = async () => { const { data } = await axios.get('https://jsonplaceholder.typicode.com/todos/1') return data } function myPromise(duration = 1) { // Use the new keyword when calling the Promise constructor return new Promise((resolve, reject) => { setTimeout(() => resolve("Promise resolved"), duration * 1000); }); } const data = promiseToSync(myPromise) console.log('π ~ file: index.js:34 ~ data:', data); const data2 = promiseToSync(getData) console.log('π ~ file: index.js:36 ~ data2:', data2); const data3 = promiseToSync(() => myPromise(3)) console.log('π ~ file: index.js:38 ~ data3:', data3); const exec = callbackToSync(cp.exec) const resp1 = exec('node -v') console.info(resp1); const resp2 = exec('ls -la') console.info(resp2); const resp3 = exec('curl https://httpstat.us/200') console.info(resp3);