const http = require('http'); const request = require('request'); const mysql = require('mysql') .createConnection() .connect() http.createServer( function(req, res){ // res, let clientRes = res; // // ... POST // id : let order = { ids: [10,15,17], phone: '79631234567' } // mysql.query('select cost from myshop where id in', order.ids, function(err, res){ // res . ( , . ) let totalPrice = 0; for(let i = 0; i < prices.result.length; i++){ totalPrice += prices.result[i].price; } // ( , ) mysq.query('insert into orders set client=?, ids=?, status=1', [order.phone, order.ids.join(',')], function(err, res){ // mysql insertId, let insertId = res.insertId; request.post('http://api.payment.example.com', {form: { name: ` ${insertId}`, amount: totalPrice }}, function(err, res, body){ // JSON let link = JSON.parse(body).link; // clientRes.end(link); // , mysql.query('update orders set status=2 where id=?', insertId, function(err, res){ console.log(` ${insertId} `); }); }); }); }); }).listen(8080);
const http = require('http'); const request = require('request'); const promise = require('promise'); const mysql = require('mysql') .createConnection() .connect() http.createServer( async function(req, res){ // res, let clientRes = res; // // ... POST // id : let order = { ids: [10,15,17], phone: '79631234567' } // let selectCost = await promise(mysql, mysql.query, 'select cost from myshop where id in', order.ids); // , selectCost{ err: ..., res: ... } // let totalPrice = 0; for(let i = 0; i < prices.result.length; i++){ totalPrice += prices.result[i].price; } // let newOrder = await promise(mysql, mysql.query, 'insert into orders set client=?, ids=?, status=1', [order.phone, order.ids.join(',')]); let insertId = newOrder.res.insertId; // // let payment = await promise(request, request.post, {form: { name: ` ${insertId}`, amount: totalPrice }}); // let link = JSON.parse(payment.res.body).link; // clientRes.end(link); // let updateOrder = await promise(mysql, mysql.query, 'update orders set status=2 where id=?', insertId); console.log(` ${insertId} `); }).listen(8080);
"use strict" function promise(context, func, ...params){ // , (, ) // return new Promise( resolve => { // , func.call(context, ...params, (...callbackParams) => { // , resolve, (. - promiseToAssoc); let returnObject = promiseToAssoc([...callbackParams]); resolve( returnedObject ); }) }) } /* */ function promiseToAssoc(results){ let res = {}; // 3 , err, res body let assoc = ['err', 'res', 'body']; for(let i = 0; i < results.length; i++){ // ( ) field_3, field_4 . let field = assoc[i] || `field_${i}`; res[ field ] = results[i]; } return res; } module.exports = promise;
let result = await promise(fs, fs.readFile, 'index.html'); // result = {err: null, res: ' '}
var files = ['1.csv', '2.csv', '3.csv']; var results = []; // for(let i = 0;i<files.length;i++){ results.push( promise(fs, fs.readFile, files[i]) ); } // ( 3 , . , ) for(let i = 0;i<files.length;i++){ results[i] = await results[i]; }
Source: https://habr.com/ru/post/334772/
All Articles