Skip to content

Instantly share code, notes, and snippets.

@ichiroku11
ichiroku11 / lib.ts
Last active February 12, 2018 05:34
Promiseオブジェクトのメソッドを使ってみた
// 指定したミリ秒後にresolveするPromiseを返す
function resolveAsync<TValue>(value: TValue, timeout: number): Promise<TValue> {
return new Promise<TValue>((resolve, reject) => {
setTimeout(() => {
console.timeStamp(`resolve: ${value}`);
resolve(value);
}, timeout);
});
}
@ichiroku11
ichiroku11 / smaple.ts
Created February 5, 2018 06:09
fetchとasync/awaitのサンプル
// fetchを使ってjsonを読み込む
const testAsync = async () => {
const response = await fetch("sample.json");
// sample.json
// { "message": "Hello, World!" }
const json: { message: string; } = await response.json();
console.log(json.message);
// Hello, World!
@ichiroku11
ichiroku11 / sample1.ts
Last active February 1, 2018 14:05
RxJS do
import * as Rx from "@reactivex/rxjs";
// doオペレータで値の流れを確認
Rx.Observable.of(1, 2, 3)
.do(value => console.log(`do[of]: (value: ${value})`))
.filter(value => value % 2 == 0)
.do(value => console.log(`do[filtered]: (value: ${value})`))
.map(value => value * 2)
.do(value => console.log(`do[mapped]: (value: ${value})`))
.subscribe(
@ichiroku11
ichiroku11 / sample1.ts
Last active February 5, 2018 01:51
async/awaitとPromiseを試す
// async/awaitとPromiseのサンプル
// Promiseを返す関数
const actionAsync = (result: number) => {
const promise = new Promise<number>((resolve, reject) => {
// 1秒後にresolveする
setTimeout(() => resolve(result), 1000);
});
return promise;
@ichiroku11
ichiroku11 / sample1.ts
Last active January 27, 2018 11:22
RxJS scanとreduce
import * as Rx from "@reactivex/rxjs";
// scan
// 都度nextコールバックが呼ばれる
Rx.Observable.of(1, 2, 3)
.scan((acc, value, index) => acc + value)
.subscribe(
value => console.log(`next: (value: ${value})`),
error => console.log(`error: ${error}`),
() => console.log(`complete:`));
@ichiroku11
ichiroku11 / app.ts
Created January 26, 2018 06:02
Promiseのサンプル
// https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise
// resolveとrejectは関数
const promise = new Promise((resolve, reject) => {
// 3秒後にresolveする
setTimeout(() => resolve(1), 3000);
});
// resolveされたときのコールバック
promise.then(value => console.log(value));
@ichiroku11
ichiroku11 / index.html
Created January 22, 2018 07:06
flexboxを使ってフルスクリーン+ヘッダとフッタを固定
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>flexbox</title>
<style>
*,
::before,
::after {
box-sizing: inherit;
@ichiroku11
ichiroku11 / app1.ts
Created December 6, 2017 09:19
jQuery Deferredのサンプル
// thenメソッド(doneFilter)を使うと、
// resolveされたときにフィルタできる
$(() => {
const deferred = $.Deferred<number>();
deferred.promise().then(value => {
// resolveメソッドに渡した引数をコールバックで取得できる
console.log(`then: ${value}`);
return value * value;
@ichiroku11
ichiroku11 / Monster.sql
Created November 2, 2017 03:17
EF Coreで楽観的同時実行制御
use Test;
begin tran;
-- テーブル作成
drop table if exists dbo.Monster;
create table dbo.Monster(
Id int,
Name nvarchar(20) not null,
Version rowversion not null,
@ichiroku11
ichiroku11 / Character.sql
Created October 21, 2017 14:32
EF CoreのOwned typesのサンプル
use Test;
begin tran;
-- テーブル作成
drop table if exists dbo.Character;
create table dbo.Character(
Id int,
Name nvarchar(4) not null,
Level int not null,