??? return n1 + n2;}const result = sum(10, 20);

// 異步

function getMsg() {

??? setTimeout(function () {??????? return { msg: "Hello Node.js" };??? }, 2000);}const msg = getMsg();

2__、代碼執行順序__

司步API從上到下依次執行,前面代碼會阻塞后面代碼的執行;異步API不會等待API執行完成后再向下執行代碼。

for (var i = 0; i < 100000; i++) {

??? console.log(i);}console.log("for循環后面的代碼");

異步API不會等待API執行完成后再向下執行代碼

console.log("代碼結束執行");

setTimeout(() => {

??? console.log("2秒后執行的代碼");

}, 2000);

setTimeout(() => {

??? console.log('"0秒"后執行的代碼');

}, 0);

console.log("代碼結束執行");

3__、回調函數__

自己定義的函數讓別人去調用

// getData函數定義

function getData(callback) {}

// getData函數調用

getData(() => {});

4__、使用回調函數獲取異步API執行結果__

});

??? setTimeout(function () {

??????? callback({ msg: "Hello Node.js" });

??? }, 2000);

}

getMsg(function (msg) {

??? console.log(msg);

});

5__、代碼執行順序分析__

console.log("代碼結束執行");

setTimeout(() => {

??? console.log("2秒后執行的代碼");

}, 2000);

setTimeout(() => {

??? console.log('"0秒"后執行的代碼');

}, 0);

console.log("代碼結束執行");

6__、Node.js中的異步API__

fs.readFile("./demo.txt", (err, result) => {});

var server = http.createServer();server.on("request", (req, res) => {});

二者在實際應用上,根據業務場景的不同,有著以下區別。

1.__長時間運行操作場景中,異步API更占優勢。__

以需要長時間運行的業務為例,假設開發者正在構建一個使用機器學習來檢測博客帖子情緒的 SaaS,開發者需要提交一個指向該博客帖子的鏈接,該服務將分析該帖子的情緒并將其返回。這個操作可能需要幾秒甚至一分鐘才能完成。可是這個時間太慢了,對于用戶來說,如果不能在 5 秒內做出響應,就會失去耐心。因此,需要一個理解長時間運行操作概念的 API。

若使用同步 API設計,它的操作流程會是

“curl -X POST -H "Content-Type: application/json" -d ‘{"url": "https://www.wundergraph.com/blog/long_running_operations"}’ http://localhost:3000/api/v1/analyze_sentiment

最終的響應結果是

“{ "status": "success", "data": { "url": "https://www.wundergraph.com/blog/long_running_oerations", "sentiment": "positive" }}”

此操作可能需要很長時間才能完成,并且用戶可能會取消它。

若使用異步 REST API設計,開發者需要返回具有唯一標識符的響應,以便客戶端可以輪詢服務器以獲取結果。設計此類 API 的正確方法是返回 202 Accepted 狀態代碼。

因此開發者最終獲得的響應效果將是一個帶有狀態代碼 202 和響應。此刻,客戶端可以使用以下命令來獲取作業的狀態:

curl http://localhost:3000/api/v1/analyze_sentiment/1/status

意味著 API 的調用者可以及時獲取作業的當前狀態或取消它。

隨著平臺功能的發展,用戶群體對精準度更高的同步API需求同步增長。

Unity 首選的資源管理工具Addressable Asset System為例,它雖然可以將資源的引用和打包分開處理,加快運行模式下和運行版本的項目迭代。但是現有的許多Unity 用戶開發的游戲不會有遠程下載內容的需要,意味著異步行為在其它項目中反而會變成約束。因此,開發者需要新添功能更專一、準確化程度更高的同步 API。

假設開發者新添加了Synchronous Addressables API,在 1.17.4 版的 Addressables 包中可以使用,兼容 Unity 2021.1、Unity 2020 LTS 和 Unity 2019 LTS。在有了新的 API 后,項目不必調整為異步加載就能用上 Addressables 了。同步行為在函數中以 AsyncOperationHandle 的 WaitForCompletion 方法表示,該方法會返回同步運算的結果。

開發者可以先聲明 Addressables.LoadAssetAsync(“MyPrefab”),返回 GameObject 運算的開關 AsyncOperationHandle。這時再聲明 WaitForCompletion 會讓系統阻攔代碼執行,直到資源加載完成。在加載完成后,WaitForCompletion 便會返回代碼請求的 GameObject。完成對異步和同步的同步運算。

事實上,在大部分實例中,同步加載的性能可比肩異步加載。而且同步加載的準確性更高。

在物聯網應用中,二者的使用都有自己的優勢

從聯網汽車和恒溫器到智能交通信號燈和農場的作物管理,物聯網被用在各種部署中。物聯網設備通常會生成大量實時數據,并使用流技術來保存這些數據。但這并不適用于向最終用戶提供數據,因為物聯網設備本身缺乏一種有效、安全的方法來將其數據公開給想要查看或分析數據的用戶。幸運的是,這種情況正在改變。隨著事件原生 API 和API 網關的出現,可以根據數據消費者的需求,同步和異步地從 IoT 設備(以及各種其他資源)公開數據。

同步 API 是一種通過請求-響應模型公開數據的 API。當數據僅定期更改和/或當數據消費者不需要持續更新的信息流時,這種方法可以根據數據消費者的請求數據進行響應,比如構建一個報告室外溫度的應用程序,同步 API 可以實時報告數據;但是,如果處于數據不斷變化的環境內,異步API 會是更好的選擇,比如流經管道的水量或機器人在工廠車間的位置不斷變化,使用異步 API,流數據可以通過 API 公開。這樣,數據消費者可以使用 API 調用訪問持續更新的數據流,而無需直接連接到后端數據流。

參考鏈接:

https://mp.weixin.qq.com/s/bvoIptd7YwU45icqvoqokg

https://mp.weixin.qq.com/s/9c11pJ5d1nbE2vmGvCDwmQ

https://blog.csdn.net/cz_00001/article/details/132837290

https://mp.weixin.qq.com/s/OjmnK8LST7IavP5-9ByZZA

https://mp.weixin.qq.com/s/kw3huYO3XXtx30RCfwheAg

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
Temporal API 完全指南:JavaScript 中現代日期與時間處理方案
下一篇
什么是API加密?
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
国产精品你懂的在线欣赏| 国产欧美精品区一区二区三区| 捆绑调教美女网站视频一区| 色婷婷综合久久| 国产精品高清亚洲| 99re视频精品| 一区二区三区四区在线| 色婷婷综合久久久| 亚洲高清在线视频| 日韩网站在线看片你懂的| 青青草视频一区| 国产视频一区二区在线| 粉嫩av一区二区三区| 亚洲美女一区二区三区| 欧美色综合网站| 久久国产综合精品| 国产精品国产三级国产普通话三级| 99久免费精品视频在线观看| 亚洲一区在线视频| 日韩欧美一级精品久久| 国产精品自拍三区| 亚洲一区二区三区四区在线观看| 91精品国产色综合久久不卡电影 | 久久亚洲一区二区三区四区| 国产精品自在在线| 亚洲激情综合网| 精品欧美乱码久久久久久| 国产69精品久久99不卡| 亚洲mv在线观看| 国产片一区二区三区| 欧美午夜寂寞影院| 国产成人自拍网| 爽好久久久欧美精品| 国产精品国产精品国产专区不片| 91精品在线免费观看| 色素色在线综合| 国产iv一区二区三区| 日本中文字幕一区| 亚洲人成小说网站色在线 | 欧美欧美欧美欧美首页| kk眼镜猥琐国模调教系列一区二区 | 免费精品99久久国产综合精品| 国产欧美日韩综合精品一区二区| 欧美一区二区三区视频免费| 91在线国产福利| eeuss鲁一区二区三区| 国产乱妇无码大片在线观看| 韩国精品主播一区二区在线观看 | 亚洲同性gay激情无套| 久久久精品国产免费观看同学| 欧美三级在线播放| 欧美在线看片a免费观看| 91蜜桃网址入口| 91网站最新网址| 91色九色蝌蚪| 91国产免费看| 欧美色男人天堂| 欧美日韩一区二区三区高清 | 日本高清不卡视频| 在线播放日韩导航| 成人av网站免费| 国产又粗又猛又爽又黄91精品| 午夜激情久久久| 日韩精品一级中文字幕精品视频免费观看 | 亚洲国产精品久久久久秋霞影院| 欧美日韩亚洲国产综合| 亚洲国产精品传媒在线观看| 欧美日韩国产一级| 91免费看视频| 久久爱www久久做| 美女诱惑一区二区| 激情综合网av| 一区二区三区欧美激情| 国产精品久久久久久福利一牛影视| 久久久99精品免费观看不卡| 在线这里只有精品| 欧美性三三影院| 欧美videos大乳护士334| 久久影院午夜论| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 午夜视频一区在线观看| 亚洲mv在线观看| 成人在线视频一区| 在线91免费看| 中文字幕欧美区| 五月天久久比比资源色| 国产精品综合网| 欧美日韩中文字幕精品| 久久久亚洲精品一区二区三区| 亚洲免费视频中文字幕| 久久成人18免费观看| 一本大道av伊人久久综合| 2020日本不卡一区二区视频| 亚洲人成精品久久久久久| 久久精品国产一区二区三| 91免费看片在线观看| 久久精品视频免费| 丝袜美腿成人在线| 91丝袜美女网| 国产精品家庭影院| 国产毛片精品视频| 欧美一区二区三区在线看| 日韩欧美国产麻豆| 中文av一区二区| 青娱乐精品视频| 91黄色激情网站| 最新国产成人在线观看| 国产精品一二三四| 精品久久久网站| 精品一区二区精品| 日韩一区二区精品葵司在线| 日韩电影一区二区三区四区| 色8久久精品久久久久久蜜| 中文字幕欧美日韩一区| 国产成人精品影视| 国产清纯美女被跳蛋高潮一区二区久久w| 久久机这里只有精品| 日韩免费成人网| 久久国产麻豆精品| 26uuu另类欧美| 成人久久久精品乱码一区二区三区| 久久久精品tv| www.日韩在线| 五月天激情小说综合| 日韩你懂的在线观看| 国内欧美视频一区二区| 国产精品免费人成网站| 日本精品一区二区三区四区的功能| 亚洲无人区一区| 久久久久久久久一| 色婷婷av一区| 九一久久久久久| 亚洲美女视频一区| 欧美日韩中文国产| 久久精品国产77777蜜臀| 欧美国产一区视频在线观看| 成人性视频网站| 亚洲不卡在线观看| 国产日韩欧美a| 欧美亚洲愉拍一区二区| 日韩vs国产vs欧美| 中文一区在线播放| 欧美区一区二区三区| 国产999精品久久| 亚洲一区免费视频| 精品成人免费观看| 欧美中文字幕亚洲一区二区va在线| 美女视频黄 久久| 亚洲理论在线观看| 久久夜色精品国产欧美乱极品| 一本到高清视频免费精品| 麻豆成人av在线| 亚洲一区二区视频| 国产精品久久久久久久午夜片| 欧美精品1区2区3区| 色呦呦日韩精品| 国产·精品毛片| 精品一区二区三区不卡 | 日韩美一区二区三区| 不卡的电影网站| 国内一区二区视频| 免费在线观看一区| 亚洲一二三四在线观看| 欧美性色综合网| 色噜噜偷拍精品综合在线| 成人激情综合网站| 国产suv精品一区二区883| 国内精品伊人久久久久av一坑| 三级久久三级久久久| 日韩国产欧美在线观看| 亚洲制服丝袜av| 亚洲电影你懂得| 天天综合天天综合色| 亚洲18女电影在线观看| 亚洲午夜电影在线| 香蕉影视欧美成人| 亚洲午夜羞羞片| 亚洲成人动漫在线免费观看| 亚洲国产精品麻豆| 日本成人中文字幕| 国内精品不卡在线| 高清成人免费视频| 91免费精品国自产拍在线不卡| 97久久人人超碰| 在线观看亚洲a| 91精品国产品国语在线不卡| 精品国产区一区| 欧美国产1区2区| 一区二区三区中文字幕精品精品| 亚洲国产一区二区三区青草影视| 免费视频最近日韩| 国产精品综合网| 在线观看国产精品网站| 欧美一区二区二区| 国产精品免费视频观看| 亚洲欧美一区二区三区国产精品| 丝袜亚洲另类丝袜在线| 国产主播一区二区三区| 在线欧美一区二区| 2021中文字幕一区亚洲|