Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SwiftのAsync / Awaitについて
Search
Takaaki Tanaka
April 14, 2018
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftのAsync / Awaitについて
第1回 HAKATA.swift ~福岡でSwiftの勉強会~
Takaaki Tanaka
April 14, 2018
More Decks by Takaaki Tanaka
See All by Takaaki Tanaka
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
630
Zenn のウラガワ ~エンジニアのアウトプットを支える環境で Google Cloud が採用されているワケ~ #burikaigi #burikaigi_h
kongmingstrap
22
8.5k
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
490
製造の課題に立ち向かう Manufacturing Data Engine と Manufacturing Connect の ご紹介
kongmingstrap
0
1.4k
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
980
JAWS-UG 福岡 #16 re:Invent 現地に行った人のお話 #jawsugfuk #jawsug
kongmingstrap
0
780
AppMod の開発のイマを知るために現地に潜入した私が見たものは・・・? #GoogleCloudNext
kongmingstrap
0
880
Kong Gateway から読みとく、 API統合・API連携サービスの最新情報 #devio2023
kongmingstrap
0
2.3k
Cloud Run に憧れて Google Cloud を推進している話 / CX事業本部で使われている技術
kongmingstrap
0
380
Other Decks in Technology
See All in Technology
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
1
380
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
1.6k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
3.1k
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
130
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.7k
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
190
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
440
猫でもわかるKiro Web
kentapapa
1
100
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
1
500
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
300
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
410
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
BBQ
matthewcrist
89
10k
The browser strikes back
jonoalderson
0
1.7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
550
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How to Ace a Technical Interview
jacobian
281
24k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
A Modern Web Designer's Workflow
chriscoyier
699
190k
Why Our Code Smells
bkeepers
PRO
340
58k
Transcript
SwiftͷAsync / Await ʹ͍ͭͯ ୈ1ճ HAKATA.swift
"CPVUNF
wΫϥεϝιουגࣜձࣾ wϞόΠϧΞϓϦαʔϏε෦ wJ04ΞϓϦΤϯδχΞ wαʔόʔαΠυΞϓϦΤϯδχΞ wαʔόʔϨε։ൃ෦ wΞϓϦέʔγϣϯΤϯδχΞ ాத໌ @kongmingtrap
wΫϥεϝιουגࣜձࣾ wϞόΠϧΞϓϦαʔϏε෦ wJ04ΞϓϦΤϯδχΞ wαʔόʔαΠυΞϓϦΤϯδχΞ wαʔόʔϨε։ൃ෦ wΞϓϦέʔγϣϯΤϯδχΞ ాத໌ @kongmingtrap
wΫϥεϝιουגࣜձࣾ wϞόΠϧΞϓϦαʔϏε෦ wJ04ΞϓϦΤϯδχΞ wαʔόʔαΠυΞϓϦΤϯδχΞ wαʔόʔϨε։ൃ෦ wΞϓϦέʔγϣϯΤϯδχΞ ాத໌ @kongmingtrap :".-༑ୡʂʂ
Ϟνϕʔγϣϯ
None
ձࣾͷۚͰߦ͘ ւ֎ΧϯϑΝϨϯε ࠷ߴͩͥʜ
4XJGUͷ "TZOD"XBJUʹ͍ͭͯ
Ϟνϕʔγϣϯ
IUUQTBXTBNB[PODPNKQBCPVUBXTXIBUTOFXBXTMBNCEB TVQQPSUTOPEFKT
IUUQTBXTBNB[PODPNKQBCPVUBXTXIBUTOFXBXTMBNCEB TVQQPSUTOPEFKT
ͳΔ΄Ͳ
4XJGU Ͳ͏ͳ͍ͬͯΔΜͩΖ͏ʁ
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU
എܠ
ඇಉظॲཧʹ·ͭΘΔ ՝ͷʑ
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ඇಉظॲཧΛͭͳ͛ཧ߹ ͷίʔϧόοΫࠈ
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ΤϥʔϋϯυϦϯ άͰͷίʔϧόο Ϋࠈ
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ͖݅Ͱඇಉظॲཧ Λ࣮ࢪ͍ͨ͠߹ɺେ ͷ߹ɺίʔυʹ ΫϩʔδϟΛॻ͘͜ͱ ʹͳΔ
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ޙͷॲཧͰHVBSEͳͲͰ ฦΔͷߟྀΛΕͯ͠ ·͏ ͦͦσόοά͠ਏ͍
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ʢϥτφʔࢯͷܦݧଇͱલஔ͖ͭͭ͠ʜʣ ඇಉظ"1*Λ࡞ͬͯɺଟ͘ͷ߹6*ͷߋ৽ͳͲ ͕བྷΉͨΊɺಉظಈ࡞Ͱߦ͏͜ͱ͕ଟ͍
"TZOD"XBJUGPS4XJGU
"TZOD"XBJUGPS4XJGU ࠶։ՄೳͳॲཧΛඳ͖͍ͨ࣌ɺ4XJGUͷ߹ͩͱɺ ஈ֊తʹΛੜ͢ΔͷΛͱͯ͠ఆٛ͢Δඞཁ͕ ͋Δ
"TZOD"XBJU
wඇಉظॲཧͷߏจ w1SPNJTFΛ؆ܿʹهड़Ͱ͖ΔΑ͏ʹͨ͠ w༷ʑͳݴޠʹΤοηϯε͕औΓࠐ·Ε͍ͯ Δʢ+BWB4DSJQUɺ$ɺ1ZUIPOɺ3VTUʜʣ "TZOD"XBJU
ଞͷݴޠͷඇಉظॲཧ
wඇಉظॲཧͷ࠷ऴతͳࣦྃ͘͠ഊΛ ද͢ΦϒδΣΫτ w݁ՌΛUIFOϝιουͳͲͰνΣΠϯͤ͞Δ 1SPNJTF
1SPNJTF doSomething().then(function(result) { return doSomethingElse(result); }) .then(function(newResult) { return doThirdThing(newResult);
}) .then(function(finalResult) { console.log('Got the final result: ' + finalResult); }) .catch(failureCallback);
wऴ͍ྃͯ͠Δ͔Ͳ͏͔Θ͔Βͳ͍ॲཧ݁Ռ ΛநԽͨ͠ܕ w'VUVSFະདྷͷ݁ՌΛද͢ܕ wจࣈ௨Γɺ૬खʢॲཧ͢Δଆʣʹʮະདྷʯ Λୗ͢ 'VUVSF
'VUVSF val f: Future[List[String]] = Future { session.getRecentPosts } f
onFailure { case t => println("Τϥʔ͕ൃੜͨ͠: " + t.getMessage) } f onSuccess { case posts => for (post <- posts) println(post) }
wඇಉظͰฦ͞ΕΔΛड͚ΔͨΊͷߏจ "XBJU function resolveAfter2Seconds(x) { return new Promise(resolve => {
setTimeout(() => { resolve(x); }, 2000); }); } async function f1() { var x = await resolveAfter2Seconds(10); console.log(x); // 10 } f1();
wඇಉظͰΛฦ͢͜ͱΛ໌ࣔ͢Δߏจ "TZOD GVODUJPOSFTPMWF"GUFS4FDPOET \ SFUVSOOFX1SPNJTF SFTPMWF\ TFU5JNFPVU \ SFTPMWF SFTPMWFE
^ ^ ^ BTZODGVODUJPOBTZOD$BMM \ DPOTPMFMPH DBMMJOH WBSSFTVMUBXBJUSFTPMWF"GUFS4FDPOET DPOTPMFMPH SFTVMU FYQFDUFEPVUQVUSFTPMWFE ^ BTZOD$BMM
"TZOD function resolveAfter2Seconds(x) { return new Promise(resolve => { setTimeout(()
=> { resolve(x); }, 2000); }); } async function add1(x) { const a = await resolveAfter2Seconds(20); const b = await resolveAfter2Seconds(30); return x + a + b; } add1(10).then(v => { console.log(v); // 4ඵޙʹ60Λදࣔ͠·͢ɻ });
4XJGUͰ ࣮ݱ͠Α͏ͱ͢Δͱ
"TZOD"XBJUGPS4XJGU "TZODͷߏจʹ͍ͭͯ
"TZOD"XBJUGPS4XJGU "XBJUͷߏจʹ͍ͭͯ
"TZOD"XBJUGPS4XJGU #FGPSF
"TZOD"XBJUGPS4XJGU "GUFS
✌ Т✌ ࡾ✌ Т ✌ࡾ ✌Т ✌
"TZOD"XBJUGPS4XJGU 'VUVSF
"TZOD"XBJUGPS4XJGU 'VUVSF
͍͔ͭΒ͑Δʁ
"TZOD"XBJUGPS4XJGU
None
IUUQTRJJUBDPNLPIFSJUFNTCFBFD
None
$PODVSSFODZJO 4XJGU0OFBQQSPBDI
$PODVSSFODZJO4XJGU0OFBQQSPBDI
IUUQTXXXTMJEFTIBSFOFUZVHPMGQSFQBSJOHGPSEJTUSJCVUFETZTUFNGBJMVSFT VTJOHBLLBTDBMBNBUTVSJ
None
"QQFOEJY
w "TZOD"XBJUGPS4XJGU w $PODVSSFODZJO4XJGU0OFBQQSPBDI w 1SPQPTBMʹࡌ͍ͬͯͳ͍4XJGUͷBTZODBXBJU͕ૉΒ͠ ͍ͱࢥ͏ཧతഎܠ w "LLBJO"DUJPOXPSLTIPQ4DBMB.BUTVSJ w
1SFQBSJOHGPSEJTUSJCVUFETZTUFNGBJMVSFTVTJOHBLLB 4DBMB.BUTVSJ ࢀߟจݙ
None