/// BANGBOO BLOG ///
■21/1/21 9:21PM
Who watches
[Click for image]
心拍数は実感でよいが、アポ―に心電図機能が付くらしい、酸素濃度も確認ができる
それらの機能と、GPSとベルトを確認してみたいな、42800円から、無理だ
よく分からんがGPSマップ等も思うような感じで使えそうだ、iPhone要る

=========
2014-04-12に投稿 GPS Watch
[Click for image]


ブタさんマークのBryton Cardio40。格安で入手できた。
Garmin910xtと機能が似ていて薄くて軽い。いいよコレは、ヨシオ。
ベルトはANT+に対応しているのでガーミンのGarmin Heart Rate Monitor[Click for image]が推し機器。

http://www.brytonsport.com/
マニュアル

トレーニングとは穴のあいたバケツに水を溜める作業だ
体がNOと叫んだら、私はYESと答える
走った距離は裏切らない。いついかなる時も決して裏切ることのない唯一無二の友、それが筋肉
千回と千1回とでは天と地の隔たり、最後の1発はその前の千に勝るとも劣らない価値がある
君のこめかみに拳銃を突きつけて「あと2repsやれ」と言ったらどうするね?死に物狂いでやるだろう?追い込むとはそういうことさ
http://www.2monkeys.jp/archives/34051594.html


Comment (0)

■21/1/11 6:58PM
I ain't update nothing yet

[Click for image]「今年2021年は間違いなく株価が暴落する」との見出し→日経が下がらない場合は「予想が外れたとして私の株価が下がるため間違いはない」のだと

個人的にはAIもデータも信じていない、やっぱりデカい絵より個の可能性が良いという勘、アフターコロナ操り人形ではないぞと人々はなるか

https://note.com/naoto111/n/nebd8adf8e69e
産業革命の蒸気機関から電力を前提としたビジネスの間には大きな飛躍、機械からソフトウェアへのパラダイムシフト。ルーティンを変えたいが、いちど内面化された規範は取り出して再評価することが非常に難しくルーティンを受益者側が認知し、改善することはとてもむずかしい人の問題

■アフターデジタル2 UXと自由
Line payとか決済の感じを言っている、キックボードな感じではなかった
決済>サービサー>メーカ のヒエラルキーに
 Line pay、Pay2、dとかが総合サービスとなりメーカを操る

取得したデータがユーザに価値を与える、UXとして還元、不義理しない責任があると中国
顧客を知るデータ(UX->data->AI)→体験型サービス(世界観、コア体験)
 高頻度接点>成長シナリオ>体験を自動化するシステム(リコメンド、VIP)
  属性データは終わり行動データ→状況ターゲティング
  ┣タイミング(ライフタイム、刹那)
  ┗好きと思われるもの
  AI(行動パターンのセグメント、仮説の結果分析とか)

UX品質:スタンダード(便利か、楽か、使いやすいか、楽しいか)
バリュージャーニー(アプリ、店舗、イベント、コールセンター)の各接点のコンセプトで顧客支援→ファン化

デジタル接点をメインにリアルをツール的に使う、丸井は売らない店舗
 コスト削減(流通、マーケ、金融、インフラ)
 UXの改善、新しいUX→DX(ペインポイントから未来を創る)

[Click for image]日本はホワイトリスト、中国米国はブラックリスト、日本はグレーは黒とされ許されない、中国はグレーは黒ではない(日本は成文法、米国は判例主義との考えもある)
スタバは固執せずにデリをし新しい形でブランディングをした、発想の転換
逆にオフラインの方が新規獲得コストが安く逆転が見られる、自販機出すとか
会社の歴史のDNAを引き継ぐ(重要人物を巻き込む)
ダメ:市場にすでに代替がある、商品起点でユーザ起点でない、社内政治でユーザ視点でない

スターバックスラテwithハニーホイップ venti、量が多く後からガンガン冴えて寝れん、スタバは店が温かくてベンティで3時間はイケるがグランデから2shotらしいのでトール一択では、ガストの大盛ポテトと赤ワインx2とどっちが体験が良いか:両方いいな

スタバ丼(写真で2つ映ってたらhot/iceだが1つならどっちか)ラテ/ムースフォームラテ/カプチーノ/アーモンドラテ
ブルーボトルhttps://tokyo-cafeblog.com/bluebottlecoffee-menu/浅煎りなのでカフェラテかスチームが多いカプチーノの2択+ワッフル500 or 何か甘味では、バター匂いがヤバい、ドリップのブレンド行ったが浅煎り薄目酸味でブラクでも悪くなかった
=====
2019-12-08に投稿 Losing your job
仮にAI自体に先進性がなかったとしても、仕事が無くなることは社会的インパクトがある
過去10年はEndUserComputingでスピード化が勝負だったと思う、次は勝負ではなくソーシャルイシューの解決だと見た、社会問題を解決できるトコロが生き残る切符をもらえる感じ、AIやクラウドで商売臭が強すぎて惑わされるが

 早くより良いサービスが提供ができる、コスト/人を少なくできる、やらなければ他社にヤラれる
 お金をかけてデータ検証をしても、そうしたとこのマネをすれば良い、デジタルはコピーできるし
 無人化をしても店員の仕事が減るだけ、RPA
 加点評価の制度を敷いても少しの損得が出るだけかも、根本的には何も変わらないかも
  (DIDIでは評価が高いと単価が高いドライバーになる、評価は買収ができないようセンサー等の公平な指標を使う等)
 AIでもツール自体はコモディティ化するので優位性はすぐになくなる
 競合を見ておき自動運転、Amazon等の黒船が出てきても対応できるようにする
  競争力の問題?古いやり方はダメなの?UXで負けると死ぬ、お金目茶掛からん?

 腐す業界慣習を打開し、アパレルの在庫破棄とか、雇用や無駄な事を守ることより正しいこと、あるべきようにやる、M&Aや業界団体を通じて再編をするしか、中国ではアイデア商品が作られ日本Amazonで買えるし小回りを利かして大きなマーケットに行くのもできる、正しいことをするとマーケットが変わるかも知れないのもDXか

[Click for image][Click for image]■アフターデジタル
オンライン後の理想を実現するだけ。デジタルで塗り替える、シェアリングエコノミー、逆にオンラインストアが店舗を持ち発送する等区別がない、スタバが古く新しいカフェが勝つかも、GoogleやAmazonのように未完成でも出しマーケットを取る。デジタルによる社内連携を変える、鉄道が郵便や新聞や銀行を作ったようにデジタルが何かを作るかも
Uber等のデリバリーが現れると店舗が不要、キャッシュレス決済で購入する意識が変わる>決済時間は減るので形に嵌められた対応より店員のエンターテイメントで選ばれる
中国の事例が多いが人口が多く世界の工場となっているから必然性があったのかも知れない

[Click for image][Click for image]■Deep Tech
プロパンを軽く運ぶ装置を開発:古いビジネスを技術で改良、イノベーションのジレンマの先を行く、まあ何としても商品を作る意気込みではBy Productを商品化とか

[Click for image][Click for image]■AI救国論
ある国をディスって炎上した人。ある種重要なことを言うと揚げ足を取られ村八分される場合がある。危険思想や儲け過ぎ、やっかみが理由。炎上マーケの場合もマッチポンプで画を描くので構造は同じではないか。AI、ロボ、英語を強調している、また若者こそ優秀、日本のITは変、日本には若い良い技術者がいない、給料が、受験システムがダメで高専がいいと主張。:社会システムの革新性が込みではあろうな、高学歴より高専の方がよりプラクティカルなのはプラクティカルで育ったので当たり前では


黒船になる輸出できるもの、マネのできないもの は脅威になる
 経験や勘ではなくデータ(レーシングもデータを使うがある程度からは数値より経験、無いデータは要るがデータ頼りとは情けない)
  アウトドアスポーツ用品店で改革(売り場の壁の高さ、動線分析、何故買わなかったのか)
  データを持っていると商圏、購入金額、購入内容の予想ができ出店が簡単になる
管理側が被管理側をどう誘導するかという観点しかない
 最前線で使用されるべきツールが管理側でしか使用されない、ボトムアップの時代は来ない?
 どんなデータ、あるいは業務が必要かは現場が一番分かっているべきだが
DX化デジタルトランスフォーメーションで何を変えるか、古いものをデジタル化するだけ?
 現業務にデジタルを適用>リアルとデジタルをUXに基づき融合>デジタルで収益構造を変える
  デジタル的マーケティング、シェアリングとか
 人間を変えるべきでは?人間自体が一番変わる
  果てし無く記憶力がある、42kmを誰もが2時間で走れる、空を飛べると世界が変わる
組織の力を変える
効率やコスパや低価格、かつスタイルがCoolなもの、ポケモンゴーのような流行るマーケ仕組みを入れる(人が溜まる、列を作る)、AIも所詮バズワード
面倒なことはAIにやらせるというスキルは取得すべき

DX意味わからん。「IT革命」と何が違うの?という話|広木大地(日本CTO協会理事/レクター取締役)|note
ナニガ安く簡単になったか分からないと駄目→どう動けばいいか知る→突然儲けの出るビジネスがなくなるかも

=====
2018-04-30に投稿 Smart contract, AI & Emo

■AI雑感
アルゴリズムが鍵、ロジックをどうプログラムするか考え方が変わるとなると手を動かしてスキルを取得しておかないとな、面倒なことはAIにやらせるのがいいかも知れない、始めと終わり以外の中間成果物的なところ

ディープラーニング:人間が理解しない形のデータが扱える(音声をウェーブでなくn次元の座標にする等しても良い)
マシーンラーニング:教師

機械学習の一連手順
1)データの可視化  :データの全体感を掴んで前処理の方針を決める
2)データの前処理  :予測精度が高くなるよう、データを綺麗にする
3)アルゴリズムの選定:データに対して適切なアルゴリズムを決める
4)モデルの学習   :コンピュータにデータの法則性を学習させる
5)モデルの検証   :出来上がったモデルの予測精度を確認する

AIが建築設計をし人間は間取りを選ぶだけ
癌画像診断、コンクリ護岸点検、バレーボールのセッター配球予測、経理伝票の仕分け入力
Adobe:類似例の自動生成
チャットボット:質問をすれば最適解を回答してくれる
HRテック(AIで評価/効果測定/異動/離職、経歴/性格/IQ/遺伝まで全自動)
 性格も知識も偏った変/嫌なやつが一番企業に利益をもたらしている事が分かった
 誰かを犠牲にするイノベーション、ジョブズのように人をビュンビュン振り回す人
  普通の成績の子どもたちは高い協調性を求められ組織や集団の中で大過なく過ごす
https://bunshun.jp/articles/-/28229?page=4

 (人間が時間を掛けて選択していることをAIにやらせる、多変量解析でもいいかも知らんが)

仕組みについてはここが良い感じかと
https://aizine.ai/algorithm-0315/

■Smart contract雑感
中央管理者を必要としない事のデメリットの癖が強い、用途が限られる
 1)スケーラビリティ
  ビットコインは総量がある
  信頼性を担保するのにノード数が必要なくせに
  履歴を持つくせにパフォーマンスを考えるとデータ量は多くできない
 2)プライベートでもすべてオープンになる

仮想通貨により世界統一通貨を実現したり、紙幣やコインが不要になったり、IMFが不要になったりするかも知れない
中央政府が不要になる可能性

■エモ消費
世代的消費活動の括り、消費というかどうやって浪費させるかという手法

https://note.mu/wildriverpeace/n/necb216232d12
いいモノを作れば売れる、広告で認知させれば売れる、割引やオトクを提示すれば売れる、は既に終わっている
モノからコト/体験へなんて言われたのははるか昔の2000年の頃 CD→握手→入れあげ
 モノは外に揃える、コトは外からの刺激(必要なモノは揃えてしまった、高品質の置いてけぼり感)
エモは入れ込む、特に女に(コトに刺激され、未完成なものに巻き込まれる)

 精神的充足
 コミュニティへの帰属意識
 瞬間的につながる刹那のコミュニティ
 今この瞬間の自己肯定感

https://comemo.io/entries/7261
家族は現状幸福度が高い。だからこそ現在の状態を維持したいという消費
幸福度の低いソロは、現状を打破するためにお金と時間を費やしたい

承認と達成感、また幸せ感の共有、帰属意識(体験/時間の共有、純粋な体験や時間でなく共有を含む)
 幸せのマイレージを貯める行動

消費者の関与によって完成するからこそ「エモい」のです。ニコニコ超会議やコミケが盛り上がるのはそういうこと
エモいとは単に感動したというより、美的/切なさ、はたから見れば哀れみを含む

-----------
■Booランディング
コンテンツが重要というが、余程のことがないと人は中身を見ていない
人間の馬鹿なところを突くというのが商法の本質
品質とは何か、ブランドで差異化、多広告対応、一定期間の体験
 Apple: 紛らわしい販売店、コピー商品を防ぐ
 ハイネケン: ステーショナリー
 幻冬舎: やりたいことをやってもいい。判断は極端であること


Comment (0)

■20/12/25 1:06AM
Promise
仕事は炎上芸なり~と勤しむ炎上芸人にも分かるように解説をさせて頂きたく候
(勤しむところはソコではない)

///promise/async/await 非同期関数
【ES6】 JavaScript初心者でもわかるPromise講座 - Qiitahttps://rightcode.co.jp/blog/information-technology/javascript-promisehttps://rightcode.co.jp/blog/information-technology/javascript-async-awaithttp://www.tohoho-web.com/ex/promise.htmlhttps://sbfl.net/blog/2016/07/13/simplifying-async-code-with-promise-and-async-await/https://qiita.com/niusounds/items/37c1f9b021b62194e077https://qiita.com/soarflat/items/1a9613e023200bbebcb3非同期関数は処理の順序を制御できない問題があった、そこでPromise↓Promise オブジェクトは then(ok_callback, ng_callback) というメソッドを持ちます。then() はPromise が成功または失敗になるまで処理を受け流し、処理を.then()で繋げ順番を確保することが可能成功時に ok_callback を、失敗時に ng_callback をコールバック関数として呼び出します.then() は第一引数に成功時のコールバック関数、第二引数に失敗時のコールバック関数.catch(ng_callback) は、.then(undefined, ng_callback) と同じ意味.catch() は処理中に発生した throw をキャッチできるES2018(ES9) では、.finally() がサポートされましたfunction aFunc3(data) {    return new Promise(function(okCallback, ngCallback) {        setTimeout(function() {            if (Math.random() < 0.30) {                ngCallback(new Error('ERROR!'));            } else {                okCallback(data * 2);            }        }, Math.random() * 1000);    });}function sample_finally2() {    aFunc3(100).then((data) => {        console.log(data);        return aFunc3(data);    })    .then((data) => {        console.log(data);        return aFunc3(data);    })    .then((data) => {        console.log(data);         throw new Error('ERROR!!!');    })    .catch((e) => {        console.log("catch");        console.log(e);    })    .finally(() => {        console.log('*** Finally ***');    });}//200 400 800 catch Error:ERRROR!!! *** Finally ***Promise.all() は配列で指定された全てのPromiseタスクを待ち全てが完了した時点で .then()を呼ぶPromise.race()ならいずれかのPromisefunction sample_all() {    p1 = taskA();    p2 = taskB();    Promise.all([p1, p2]).then(() => {        console.log("taskA and taskB are finished.");    });}↓ES2017 では、async/await がサポートされましたasync と await を用いることで、Promise に対応した非同期関数を、同期関数の様にシンプルに呼び出すことが可能となります同期関数の様に呼び出したい非同期関数を呼び出す際に await をつけます。await を呼び出す関数に async をつけますasync function sample_async_await_with_catch() {    var val = 100;    try {        val = await aFunc3(val);        console.log(val);        val = await aFunc3(val);        console.log(val);        val = await aFunc3(val);        console.log(val);    } catch (e) {        console.log(e);    }}
■コールバック関数広い定義でいうと「高階関数に渡すための関数」「関数を受け取る関数」は「高階関数」、つまりhello()がコールバック関数// 関数を2回実行する関数!!function doTwice(func) {  func(); // 1回目Hello!  func(); // 2回目Hello!}// あいさつするだけの関数function hello() {  console.log('Hello!');}// あいさつを2回実行するdoTwice(hello);
========================================
もっと詳しく、もっと分かり易く、どう使うか↓

https://knowledge.sakura.ad.jp/24890/https://jsprimer.net/basic/async/https://dev.classmethod.jp/articles/javascript-asynchronous-processing/■処理の繋がり1)コールバック関数 ある関数の処理が終われば次のコールバック関数を呼ぶという指定がそれ 歴史的にはエラーファーストコールバック(のルール)  処理が失敗した場合は、コールバック関数の1番目の引数にエラーオブジェクトを渡して呼び出す  処理が成功した場合は、コールバック関数の1番目の引数にはnullを渡し、2番目以降の引数に成功時の結果を渡して呼び出す  fs.readFile("./example.txt", (error, data) => {

2)Promise(非同期処理に対するPromise→順番を合わせる意味では同期処理ではと思う?JSはシングルスレッドかつ非同期という糞?仕様) ある関数の処理が終わればPromiseオブジェクトを返す JSがシングルスレッドだが 処理を一定の単位ごとに分け処理を切り替えながら実行する並行処理(concurrent)の仕様のため 順序を考慮する必要がある  非同期処理の実行中にとても重たい処理があると非同期処理の切り替えが遅れる
Promiseオブジェクトは3つの内部状態を持ちます。 pending(保留): まだ非同期処理は終わっていない(成功も失敗もしていない) fulfilled(成功): 非同期処理が正常に終了した rejected(拒否): 非同期処理が失敗した  初期状態はpendingで、一度fulfilledまたはrejectedになったらそれ以降は状態は変わらず、非同期処理の終了時に返す値もそれ以降は変わらない
Promiseのコンストラクターは関数を引数に取って、その関数がさらに2つの関数を引数に取る 1番目の関数(resolve)に引数を渡して実行すると状態がfulfilledになり、引数の値はPromiseオブジェクトが保持する値になる 2番目の関数(reject)に引数を渡して実行すると状態がrejectedになり、引数の値はPromiseオブジェクトが保持する値になる 関数が例外を投げた場合も状態がrejectedになり、投げた値がPromiseオブジェクトが保持する値になる、throwする値をrejectedに渡して実行した時と同じ
then()は2つの関数を引数に取り、Promiseの状態がfulfilledになったら1番目の関数が、rejectedになったら2番目の関数が実行されます。 then()の1番目の引数が関数でなければidentity function(入力値をそのまま返す関数)が代わりに使われます 2番目の引数が関数でなければthrower function(入力値を例外として投げる関数)が代わりに使われます  catch()は1番目の引数にidentity functionを指定したthen()と同じ
上の挙動をオレオレPromiseをYakusokuで作っているので分かり易い https://knowledge.sakura.ad.jp/24890/
なお、本質としてはコレ、下記ソースが決まりの流れ、ひな形としてヤリ慣れるしか1)時間が掛かる処理をPromise化して順序立てよう2)成功と失敗のコールバックを指定しよう
//処理にコールバック関数を入れて成功と失敗時の型で終えるfunction dummyFetch(cmt, callBack) {    setTimeout(() => {        if (cmt.startsWith("/success")) {            callBack(null, { body: `Response body of ${cmt}` });        } else {            callBack(new Error("Bad"));        }    }, 1000 * Math.random());}//プロミスを入れるためラッパーを関数にかますfunction aaaFilePromise(cmt) {  return new Promise((resolve, reject) => {    dummyFetch(cmt, (err, data) => {      if (err) {        reject(err); // 失敗: 内部状態をrejectedにする      }      else {        resolve(data); // 成功: 内部状態をfulfilledにする      }    });  });}//プロミスチェーンでのフローaaaFilePromise("/success/passwd")  .then((data) => { // 読み出しに成功したらresolve()に渡した値が引数として渡される    console.log("1", data);    //return 'next';//テキストがあってもなくても次のthenに行く、省略でもテキストでも第一引数関数に行く成功側    return aaaFilePromise("/etc/text");//エラーで次のthenの失敗側の第二引数関数にきっちり行く  })  .then((data) => {    console.log("2", data);    return aaaFilePromise("/success/shadow1");  }, (data) => {    console.log("2e", data);    return aaaFilePromise("/success/shadow2");  })  .then((data) => {    console.log("3", data);    return aaaFilePromise("/etc/shadow");  })  .catch((err) => { // reject()に渡した値が引数として渡される    console.log("error", err);  });
then()/ catch()は、引数で渡された関数の戻り値から新たにPromiseオブェクトを作り、そのオブジェクトを返します。そのためメソッドチェーンが可能  引数に渡した関数の戻り値がPromiseオブジェクトの場合はそのオブジェクトをそのまま返す、そうでなければ戻り値をPromiseで包んで返す エラーでキャッチに飛ぶ訳ではなく次のthen第2引数関数に飛んでいる、省略でcatchに行っているように見えるだけ
dexieやPWAでの提供があり使う(処理を順序立てて使うようプログラムを組む時にdexie: db.schedule.where('site').equals('sche').first().then(function(records) {pwa: caches.keys().then(function(keyList){return Promise.all(keyList.map(function(key){

3)async / await
promiseは順番決めができたがasync/awaitは順番を扱う処理もできる
setTimeout/setIntevalがプロミスチェーンだけでは時間を止められない
 シングルスレッドから似非スレッドで分離し非同期になるから、awaitを入れると同期する↓
const wait = (sec) => {  return new Promise((resolve, reject) => { setTimeout(resolve, sec*1000);  });};async function arrKick_async(arr) {    for(let i=1; i<=num_arr; i++){      arr = await kickPromise(arr);      await wait(2);
    }}arrKick_async(arr);

========================================JSネイティブとPromiseとasyncが混ざった場合は同期しない、then()すら超えてくる↓
4)コールバック地獄
結局コールバック地獄が扱いやすい(スレッドの切り替えがなければ同期ができる)、最近のJSフレームワークは全部Promise化しているらしいが
例)キャッシュを保存し、そのステータスを取るようにAsyncやPromiseで保存待ちの順番をにしても、待たない
//隙間がないと1度エラーだとエラーになりっぱなしlet num_cache;num_cache = getCacheStatus();if(num_cache == 0 || !num_cache){ num_cache = getCacheStatus(); if(num_cache == 0 || !num_cache){ num_cache = getCacheStatus(); if(num_cache == 0 || !num_cache){ num_cache = getCacheStatus(); if(num_cache == 0 || !num_cache){
//setTimeoutで隙間があっても関数スレッドの返り値を代入するスレッド切替時に、返り値を待つスレッドの方は次の処理に進んでしまいIF判定ができないlet s = setTimeout(function(){ let num_cache1 = getCacheStatus(); if(num_cache1 == 0 || !num_cache1){ s = setTimeout(function(){ let num_cache2 = getCacheStatus(); if(num_cache2 == 0 || !num_cache2){ s = setTimeout(function(){ let num_cache3 = getCacheStatus(); if(num_cache3 == 0 || !num_cache3){ s = setTimeout(function(){ let num_cache4 = getCacheStatus(); if(num_cache4 == 0 || !num_cache4){
//Func返り値やPromiseやAsyncでのスレッドの切り替えがないDOMの判定であれば上手くいくlet s = setTimeout(function(){ getCacheStatus(); if(document.getElementById('mes_filenames').innerHTML == 'none'){ s = setTimeout(function(){ getCacheStatus(); if(document.getElementById('mes_filenames').innerHTML == 'none'){ s = setTimeout(function(){ getCacheStatus(); if(document.getElementById('mes_filenames').innerHTML == 'none'){ s = setTimeout(function(){ getCacheStatus(); if(document.getElementById('mes_filenames').innerHTML == 'none'){ s = setTimeout(function(){ getCacheStatus(); if(document.getElementById('mes_filenames').innerHTML == '<?php echo $lang_page->install_none; ?>'){
function getCacheStatus(){ let num_caches = 0; let num_success = 0; caches.keys().then(function(keyList){   return Promise.all(keyList.map(function(key){ caches.open(key).then(function(cache) { cache.matchAll().then(function(response) { document.getElementById('mes_filenames').innerHTML = ''; let s; let o; for(const value of response){ s = value.status; o = value.ok; document.getElementById('mes_filenames').insertAdjacentHTML('afterbegin', value.url + '<br>'); if(s == '200' && o){ num_success++; } num_caches++; } if(num_caches > 0){ document.getElementById('mes_progress_rate').innerHTML = 'Progress: ' + num_success / num_caches * 100 + '%'; }else{ document.getElementById('mes_filenames').innerHTML = 'None'; } }); });   })); }); return num_caches;}===============
thenの入れ子だと親の部分だけ先に進んでしまう、入れ子ダメで親子を作れば親→子の一方方向で子で終わるトーナメント構造で(上がらない)
test1().then((result) => {
test2().then((result) => { //fuok });})then(function() これは入れ子

test1().then((result) => {
test2().then((result) => { //fuok
})then(function(){ //fuok2 }); これでトーナメント構造
})catch(function(e)

promiseチェーンでthen毎にに欲しい引数を出すが、複数であればそれらの引数をthenに渡せない、下記1は駄目
 1)thenで一つの引数になるようにロジックを組む(thenのトーナメント構造、一階層上で変数に入れる等) }).then(function(response){ return [response.json(), arr_del]; }).then(function(v) { json = v[0]; arr = v[1];
 2)callbackとresolveに配列を使うとOK、オブジェクトでもいいかも
function dummyFetch(cmt, callBack) { if(Array.isArray(cmt){ var p = cmt[0]; var s = cmt[1]; }else{ var p = cmt; var s = 1; } setTimeout(() => {         if (p.startsWith("/success")) { var r = [p, ++s];//これ不可[p, s++] callBack(null, r);         } else {             callBack(new Error("Bad"));         }     }, 1000 * Math.random()); } function aaaFilePromise(cmt) {   return new Promise((resolve, reject) => {     dummyFetch(cmt, (err, data) => {       if (err) {         reject(err);       }       else {         if(Array.isArray(data){ var p = data[0]; var s = data[1]; }else{ var p = data; var s = 1; } resolve([p, s]); // 成功: 内部状態をfulfilledにする       }     });   }); }===============
Promise化していない関数を使いたいが、そのまま使うかthen化できるようにするか? 1)次thenに進みたい元Funcの処理としてresolveの返り値に入れる、ダメなら省略可だがreject()に渡しcatchする
 2)次thenには適当でもいいのでreturnで進む function test1 () {   return new Promise((resolve, reject) => {     const a = 1;     const b = 2;     resolve([a, b]);   }) } test1().then((result) => {   console.log(result[0]); // 1   console.log(result[1]); // 2
  return 'go next'; }).then(function(){

エラーハンドリングしたい、よくわからんが下記で動作に違いがでた、rejectはJSがエラーを吐いた
 1)catchさせるにはthrow new Errorし、alertを出す
 2)catchはしないが次のthenには移動させないためreturn false
}).then(function(json){ if(json.init == 'Not appropriate access'){ throw new Error('Server warning'); }else if(json.init == 'No data'){ //reject("initiate!"); return false; }else{
resolve(json);
} }).catch(function(error){ alert('Ooops:  ' + error); });Promise.allを使って、3つのpromiseを同時に実行、allはすべての非同期処理がresolveされたタイミングで結果を返 Promise.all([test1, test2, test3]).then(function() {     console.log("Fourth");もっと簡単に async, await, Promise - Qiita

■Javascript
https://www.bangboo.com/cms/blog/page_325.html


Comment (0)

Navi: <  19 | 20 | 21 | 22  >
-Home
-Column [135]
-Europe [9]
-Gadget [79]
-Web [137]
-Bike [4]

@/// BANGBOO BLOG ///