index

id: 6b578988b99c865c144ed5f029eab8f0dc76653f544d5116d3fb7551e431a94b

id (bech32): note1ddtcnz9enjr9c9zw6hczn64c7rw8vefl23x4z9knld64rep3499syy42pw

sig: 14cc2be2bdb6785c35d029184273f4f05355c27cdbe961366050e8fc644eeeb7d656269d29d751b9fad191a2ea0e5985ee557465a62587bd7c5ca57bb4663a3b

created_at: 2023-09-02 23:15:49 +0900

created_at (unix time): 1693664149

content:

こういうコードを考える.

f1は指定した秒数経過後に終わってくれる想定.

fはf1を2回呼ぶ想定.受け取ったsec1 sec2でf1を呼ぶ.なので

f(1, 2) とすると,合計3秒掛かる…みたいなことになる.

const f1 = async (sec) => {
return new Promise((resolve) => {
setTimeout(() => { resolve(); }, sec * 1000);
});
}

const f = async (sec1, sec2, message) => {
await f1(sec1);
console.log(message, "timing 1", new Date());
await f1(sec2);
console.log(message, "timing 2", new Date());
};

console.log("start", new Date());
await Promise.all([f(1, 2, "first_"), f(2, 2, "second")]);
console.log("finish", new Date());

これを動かすと得られる出力は,

start 2023-09-02T14:15:33.487Z
first_ timing 1 2023-09-02T14:15:34.491Z
second timing 1 2023-09-02T14:15:35.490Z
first_ timing 2 2023-09-02T14:15:36.492Z
second timing 2 2023-09-02T14:15:37.491Z
finish 2023-09-02T14:15:37.491Z

のようになり,互い違いに 1 秒後,2秒後,(1+2)秒後,(2+2)秒後,にawaitで待ち終わった…というのが伝わると嬉しい.

JSON