Skip to content

Instantly share code, notes, and snippets.

console.log "Hello from Gist!"
@derzunov
derzunov / medium__async-await__full.es6
Last active August 18, 2016 12:33
Async/Await example
function asyncFunc1 () {
return new Promise(function(resolve, reject) {
setTimeout( () => resolve({message: "First done!"}), 300 );
});
};
function asyncFunc2 () {
return new Promise(function(resolve, reject) {
setTimeout( () => resolve({message: "Second done!"}), 200 );
});
function asyncFunc1 () {
return new Promise(function(resolve, reject) {
setTimeout( () => resolve({message: "First done!"}), 300 );
});
};
function asyncFunc2 () {
return new Promise(function(resolve, reject) {
setTimeout( () => resolve({message: "Second done!"}), 200 );
});
asyncFunc1().then(function( data ) {
console.log( data.message ); // Выводим результат первой функции
asyncFunc2().then(function( data ) {
console.log( data.message ); // Выводим результат второй функции
asyncFunc3().then(function( data ) {
console.log( data.message ); // Выводим результат третьей функции
// Тут делаем наши дела после того, как все функции отработали
console.log("Всё!");
});
async function startAsync() {
let data_1 = await asyncFunc1(); // Функция работает как синхронная
let data_2 = await asyncFunc2(); // Затем эта функция работает как синхронная
let data_3 = await asyncFunc3(); // Наконец эта функция работает как синхронная
// Делаем то, что хотели сделать лишь при завершении работы всех трёх функций
console.log(data1.message, data2.message, data3.message);
};
startAsync();
asyncFunc1().then(function( data ) {
console.log( data.message );
return asyncFunc2();
}).then(function( data_2 ) {
console.log( data_2.message );
return asyncFunc3();
}).then(function( data_3 ) {
console.log( data_3.message );
// Тут делаем наши дела после того, как все функции отработали
function asyncFunc1 () {
console.log("Выполняюсь 1");
return new Promise(function(resolve, reject) {
setTimeout( () => resolve({message: "First done!"}), 200 );
});
};
function asyncFunc2 () {
console.log("Выполняюсь 2");
return new Promise(function(resolve, reject) {
@derzunov
derzunov / yuotube_id_from_url.coffee
Last active August 29, 2016 20:32
YouTube video id parser
link = "https://www.youtube.com/watch?v=Imeq3GeRttw"
link2 = "http://www.youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0"
link3 = "http://www.youtube.com/watch?v=EqS7oJcBi7w#t=0m10s"
youtube_parser = ( url ) ->
regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/
match = url.match regExp
if match and match[7].length == 11 then match[7] else false
console.log youtube_parser( link ), youtube_parser( link2 ), youtube_parser( link3 )
@derzunov
derzunov / medium__sails_pasport_fb_config_passport.js
Created October 14, 2016 18:38
your_cool_project/config/passport.js
var passport = require( 'passport' ),
FacebookStrategy = require( 'passport-facebook' ).Strategy;
passport.use( new FacebookStrategy({
clientID: YOUR_CLIENT_ID, // Получить тут - https://developers.facebook.com/
clientSecret: YOUR_CLIENT_SECRET, // Получить тут - https://developers.facebook.com/
callbackURL: "/auth/callback", // Наш урл коллбэка в контроллере AuthController
enableProof: false,
profileFields: ['id', 'email', 'name'] // Поля, которые мы хотим получить у пользователя facebook
},
@derzunov
derzunov / medium__sails_pasport_fb__user.js
Created October 14, 2016 19:01
your_cool_project/api/models/User.js
module.exports = {
attributes: {
name: {
type: 'string',
minLength: 42
}
/*
и другие атрибуты и attribute/instance методы...
*/