精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

N-API之Promise篇

開發(fā) 前端
本文介紹N-API中的Promise功能的使用。Promise相關(guān)的API一共有四個。在回調(diào)里,通過napi_resolve_deferred或napi_reject_deferred修改Promise(deferred)的狀態(tài),這時候,js層的回調(diào)就會被執(zhí)行。以上就是N-API中關(guān)于Promise的使用。

本文介紹N-API中的Promise功能的使用。Promise相關(guān)的API一共有四個。

  1. napi_create_promise // 創(chuàng)建一個Promise,類似new Promise 
  2. napi_resolve_deferred // resolve一個Promise 
  3. napi_reject_deferred // reject一個Promise 
  4. napi_is_promise // 判斷變量是否是一個Promise 

我們首先看一下napi_is_promise。測試代碼如下

  1. const { isPromise } = require('./build/Release/test.node'); 
  2. console.log('is Promise', isPromise(1), isPromise(Promise.resolve())); 

接著看看N-API的實(shí)現(xiàn)。

  1. static napi_value isPromise(napi_env env, napi_callback_info info) { 
  2.   napi_value result; 
  3.   size_t argc = 1; 
  4.   napi_value argv[1]; 
  5.   bool is_promise; 
  6.  
  7.   napi_get_cb_info(env, info, &argc, argv, NULLNULL); 
  8.   napi_is_promise(env, argv[0], &is_promise); 
  9.   napi_get_boolean(env, is_promise, &result); 
  10.  
  11.   return result; 
  12.  
  13. napi_value Init(napi_env env, napi_value exports) { 
  14.   napi_value func2; 
  15.   napi_create_function(env, 
  16.                       NULL
  17.                       NAPI_AUTO_LENGTH, 
  18.                       isPromise, 
  19.                       NULL
  20.                       &func2); 
  21.   napi_set_named_property(env, exports, "isPromise", func2); 
  22.  
  23.   return exports; 

我們看到實(shí)現(xiàn)比較簡單,只是封裝了N-API的API。我們繼續(xù)看Promise的真正使用。測試代碼如下

  1. const { getPromise, isPromise } = require('./build/Release/test.node'); 
  2. getPromise() 
  3.     .then
  4.         (result) => { 
  5.             console.log('resolve', result) 
  6.         },  
  7.         (result) => { 
  8.             console.log('reject',result) 
  9.         } 
  10.     ); 

接著看N-API的實(shí)現(xiàn)。

  1. struct info{ 
  2.   napi_async_work worker; 
  3.   napi_deferred deferred; 
  4.   int sum
  5. }; 
  6.  
  7. static napi_value getPromise(napi_env env, napi_callback_info info) { 
  8.   napi_value promise; 
  9.   napi_value resource_name; 
  10.   struct info data = {nullptr, nullptr, 0}; 
  11.   struct info * ptr = &data; 
  12.   napi_create_promise(env, &ptr->deferred, &promise); 
  13.   napi_create_string_utf8(env,"test", NAPI_AUTO_LENGTH, &resource_name); 
  14.   napi_create_async_work(env, nullptr, resource_name, work, done, (void *)ptr, &ptr->worker); 
  15.   napi_queue_async_work(env, ptr->worker); 
  16.  
  17.   return promise; 
  18.  
  19. napi_value Init(napi_env env, napi_value exports) { 
  20.   napi_value func; 
  21.   napi_create_function(env, 
  22.                       NULL
  23.                       NAPI_AUTO_LENGTH, 
  24.                       getPromise, 
  25.                       NULL
  26.                       &func); 
  27.   napi_set_named_property(env, exports, "getPromise", func); 
  28.  
  29.   return exports; 

首先通過napi_create_promise創(chuàng)建一個Promise。然后返回給js層,但是這個Promise是未決議的,這里我們通過給Libuv線程池實(shí)現(xiàn)一個異步的操作,然后在回調(diào)里resolve這個Promise。napi_create_promise API會生成兩個對象,一個Promise(返回給js),一個是deferred,我們修改Promise狀態(tài)的時候,是通過操作deferred變量,所以我們首先保存了該變量的值,然后在異步回調(diào)里修改它的狀態(tài)。我們看看線程池里執(zhí)行的代碼。

  1. void work(napi_env env, void* data) { 
  2.   struct info *arg = (struct info *)data; 
  3.   int sum = 0; 
  4.   for (int i = 0; i < 1000; i++) { 
  5.     sum += i; 
  6.   } 
  7.   arg->sum = sum

我們在子線程里做一個計算,然后把結(jié)果保存到info里,接著在回調(diào)里做進(jìn)一步處理。

  1. void done(napi_env env, napi_status status, void* data) {  
  2.   struct info *arg = (struct info *)data; 
  3.   napi_value ret; 
  4.   if (true) { 
  5.     napi_create_int32(env, arg->sum, &ret); 
  6.     napi_resolve_deferred(env, arg->deferred, ret); 
  7.   } else { 
  8.     napi_create_int32(env, 0, &ret); 
  9.     napi_reject_deferred(env, arg->deferred, ret); 
  10.   } 
  11.   napi_delete_async_work(env, arg->worker); 
  12.   arg->deferred = nullptr; 

 

在回調(diào)里,通過napi_resolve_deferred或napi_reject_deferred修改Promise(deferred)的狀態(tài),這時候,js層的回調(diào)就會被執(zhí)行。以上就是N-API中關(guān)于Promise的使用。

 

責(zé)任編輯:武曉燕 來源: 編程雜技
相關(guān)推薦

2021-06-05 06:49:54

LibuvN-API進(jìn)程

2025-05-13 09:07:47

PromiseAPI靜態(tài)

2011-07-12 22:18:03

臺式機(jī)用戶體驗(yàn)

2020-11-27 08:02:41

Promise

2020-10-23 10:10:59

Promise前端代碼

2020-09-21 05:54:45

Promise APIJSCSS

2023-09-15 15:31:23

異步編程Promise

2018-11-29 08:00:20

JavaScript異步Promise

2011-04-14 10:03:32

UI組件BlackBerry

2011-04-14 10:05:16

BlackBerry

2025-10-27 01:22:00

n8nwindowsdocker

2011-02-25 10:36:12

Proftpd

2025-05-08 08:35:00

異步編程JavaScriptAPI

2011-02-25 10:25:07

Proftpd

2025-07-11 08:09:07

Node.jsAPI權(quán)限

2016-06-16 19:21:59

阿里云云服務(wù)器資源編排

2020-12-15 08:01:24

Promise參數(shù)ES6

2020-07-29 17:35:08

Promise源碼前端

2013-09-02 16:13:56

API應(yīng)用資源

2021-09-06 06:45:06

Webpack優(yōu)化MindMaster
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

99视频精品在线| 亚洲国产高清一区二区三区| 欧美日韩国产免费一区二区 | 夜夜躁狠狠躁日日躁2021日韩| 日本电影亚洲天堂一区| 免费成人进口网站| 日韩三级电影网| 久久精品国内一区二区三区| 极品少妇一区二区三区精品视频 | 中文字幕一区二区三区四区欧美| 91欧美在线| 亚洲国产91精品在线观看| 日本在线一二三区| 国产精品蜜芽在线观看| 中文字幕日韩av资源站| 久久免费99精品久久久久久| 国产麻豆91视频| 三级久久三级久久| 久久久久久久久久国产精品| 黄色录像免费观看| 国产精品亚洲二区| 亚洲第一区中文字幕| 午夜啪啪小视频| 国偷自产一区二区免费视频 | www国产无套内射com| 国产美女性感在线观看懂色av| 国产传媒日韩欧美成人| 国产精品美腿一区在线看| 日韩网红少妇无码视频香港| 夜间精品视频| 俺也去精品视频在线观看| 欧美特黄一区二区三区| 国产精品极品| 日韩精品一区二区三区蜜臀| 天美一区二区三区| 日韩精品第二页| 欧美亚洲一区二区三区四区| 波多野结衣50连登视频| 欧美高清另类hdvideosexjaⅴ| 国产精品久久午夜夜伦鲁鲁| 日韩欧美亚洲v片| 欧美精品久久久久久久久久丰满| 91在线视频观看| 久久亚洲精精品中文字幕早川悠里 | 色综合久久88色综合天天6| www.avtt| √天堂8资源中文在线| 亚洲人xxxx| 国产又黄又爽免费视频| av网站免费在线观看| 国产精品免费人成网站| 亚洲国产一区二区精品视频| 成人欧美一区| 国产欧美日韩综合| 三区精品视频观看| 国产对白叫床清晰在线播放| 日本一区二区在线不卡| 亚洲欧美日韩精品久久久| 国产高清视频在线| 国产精品家庭影院| 五月天色婷婷综合| bestiality新另类大全| 综合欧美亚洲日本| 久久久99精品视频| 大黄网站在线观看| 午夜激情一区二区三区| 亚洲自偷自拍熟女另类| 免费成人美女女| 欧美日韩视频在线第一区| 高潮一区二区三区| 日韩精品一级| 亚洲国内精品视频| 人妻少妇无码精品视频区| 成人在线电影在线观看视频| 久久久999国产| 激情五月婷婷小说| 午夜一级在线看亚洲| 国产精品电影一区| 国产黄色一区二区| 91丨九色porny丨蝌蚪| 亚洲精品国产一区| 污视频网站免费在线观看| 婷婷中文字幕综合| 亚洲77777| av日韩在线播放| 亚洲一区二区福利| 欧美视频www| 国产日韩视频| 成人在线免费观看视视频| 国产肥老妇视频| 成人一区二区三区视频| 日韩av一区二区三区在线| √天堂8在线网| 色婷婷久久久综合中文字幕 | 国产性生活免费视频| 女海盗2成人h版中文字幕| 欧美日韩精品一区二区三区四区 | 久久6免费高清热精品| 日韩欧美一级视频| 国产一区二区三区香蕉| 欧美三日本三级少妇三99| 大地资源网3页在线观看| 色综合久久天天综合网| 精产国品一区二区三区| 欧美日韩在线播放视频| 久久久女女女女999久久| 一二三区在线播放| 久久综合国产精品| 日b视频免费观看| 激情欧美一区二区三区黑长吊| 精品99一区二区| 永久av免费网站| 日韩国产在线观看一区| 精品亚洲一区二区三区四区五区高| 日本在线人成| 色综合久久久久综合| 好吊操视频这里只有精品| 久久免费大视频| 日韩免费观看av| 同心难改在线观看| 综合电影一区二区三区| 国产福利一区视频| 日韩在线影视| 97在线视频精品| 国产 欧美 自拍| 最新中文字幕一区二区三区| 日日躁夜夜躁aaaabbbb| 国产探花在线精品一区二区| 91精品国产乱码久久久久久久久| 成人av无码一区二区三区| 中文字幕人成不卡一区| 中文字幕成人在线视频| 九九亚洲视频| 日本久久精品视频| 日本福利片高清在线观看| 亚洲电影激情视频网站| 五月天丁香社区| 欧美日本一区二区高清播放视频| 国产精品主播视频| 午夜免费视频在线国产| 欧美少妇性性性| youjizz亚洲女人| 热久久免费视频| 香蕉久久夜色| 久久亚洲资源中文字| 原创国产精品91| 中文在线观看av| 国产精品国产自产拍高清av王其| 国产免费又粗又猛又爽| 欧美精选一区二区三区| 国产精品美女呻吟| 麻豆网站在线| 欧美一级欧美三级在线观看| 18岁成人毛片| 国产不卡在线视频| 国内少妇毛片视频| 成人在线超碰| 91精品国产高清自在线| 久久精品a一级国产免视看成人 | 久久久久久伊人| 人妻中文字幕一区| 狠狠爱在线视频一区| 免费一级做a爰片久久毛片潮| 日欧美一区二区| 亚洲一区高清| 日本一区二区三区视频在线看| 欧美裸体男粗大视频在线观看| www.五月激情| 日韩欧美黄色动漫| 中文字幕伦理片| 国产原创一区二区三区| 丁香六月激情网| 九九视频精品全部免费播放| 成人a视频在线观看| 欧美xxxx黑人又粗又长| 精品中文视频在线| 一级黄色大片免费| 一区二区三区高清| 亚洲一区二区三区蜜桃| 久久国产三级精品| 韩日视频在线观看| 欧美精品一二| 97se视频在线观看| 暖暖成人免费视频| 久久伊人91精品综合网站| 国产小视频免费观看| 在线观看一区二区视频| 久久国产在线视频| 国产欧美一区二区精品性色| 日日夜夜精品视频免费观看| 亚洲一区二区网站| 麻豆中文字幕在线观看| 欧美成a人免费观看久久| 国产精品久久久久久久久久免费| 丝袜美腿av在线| 在线看日韩欧美| 丰满人妻熟女aⅴ一区| 精品视频一区三区九区| 国产在线视频你懂的| 国产精品人妖ts系列视频| 大桥未久恸哭の女教师| 六月丁香婷婷色狠狠久久| 1024av视频| 国产精品v一区二区三区| 天堂av一区二区| 牛牛视频精品一区二区不卡| 亚洲自拍偷拍网址| 亚洲www啪成人一区二区| 97国产精品久久| av在线播放国产| 国产亚洲精品美女| 性高潮久久久久久久久久| 日韩午夜电影在线观看| 在线观看不卡的av| 欧美日韩国产精品| 日本少妇全体裸体洗澡| 亚洲欧洲色图综合| 日本成人午夜影院| 91亚洲精华国产精华精华液| 先锋资源在线视频| 久久99国产乱子伦精品免费| 激情视频综合网| 亚洲一区二区三区高清| 久艹视频在线免费观看| 中文字幕一区二区精品区| 亚洲国产精品视频一区| 免费成人结看片| 免费观看成人高| 欧美一区 二区| 国产精品xxxx| 中文在线综合| 91九色在线免费视频| 成人精品视频在线观看| 国产一区二中文字幕在线看| 日产精品一区| 国产精品99久久久久久久久久久久| 蜜桃av在线| 人九九综合九九宗合| 亚洲国产福利| 日韩免费观看网站| 亚洲性受xxx喷奶水| 欧美最顶级的aⅴ艳星| 日本不卡网站| 青草热久免费精品视频| 日本三级一区| 日本免费一区二区三区视频观看 | 色偷偷久久一区二区三区| 日韩欧美成人一区二区三区 | 亚洲中文字幕一区二区| 555夜色666亚洲国产免| 国产精品一区二区av白丝下载| 9191国产精品| www.欧美国产| 亚洲精品国产综合区久久久久久久| 人妻少妇精品无码专区| 日韩精品亚洲精品| 黄网在线免费| 日韩在线视频网| 羞羞的视频在线看| 久久久久国产精品www| 啊啊啊久久久| 国产精品999| 国产精品3区| 国内一区二区三区在线视频| 亚洲成人一品| 亚洲制服中文| 欧美三区不卡| www.亚洲天堂网| 久久99精品久久只有精品| 美女日批在线观看| 91啦中文在线观看| 林心如三级全黄裸体| 悠悠色在线精品| 在线观看免费国产视频| 91福利在线播放| 99久久精品国产一区色| 日韩毛片中文字幕| 在线看av的网址| 欧美日本精品在线| 欧美xxx网站| 亚洲最大的成人网| 日韩欧美ww| 亚洲一区三区在线观看| 亚洲高清二区| 国产又黄又猛又粗又爽的视频| 国产精品综合一区二区三区| 国产一级二级在线观看| 日韩一区在线免费观看| 国产一级做a爱片久久毛片a| 欧美日韩三级在线| 少妇荡乳情欲办公室456视频| 中文国产成人精品久久一| 国产探花视频在线观看| 国产成人精品在线播放| youjizzjizz亚洲| 亚洲精品在线视频观看| 一区免费视频| 依人在线免费视频| www.日韩大片| 日韩精品一区二区三区在线视频| 午夜私人影院久久久久| 国产又粗又猛又黄又爽无遮挡| 日韩禁在线播放| 伊人手机在线| 成人妇女免费播放久久久| 蜜桃视频欧美| 国产69精品久久久久999小说| 久久精品国产亚洲aⅴ| av小说在线观看| 亚洲二区在线观看| 精品人妻少妇嫩草av无码专区 | v片在线观看| 国产精品久久久久久久久久小说 | 日本一级淫片免费放| 欧美另类videos死尸| 青青九九免费视频在线| 久久久久久久久网站| 国产色99精品9i| 一区二区在线观| 日韩av电影天堂| a天堂中文字幕| 色综合天天综合网国产成人综合天| 丰满少妇高潮在线观看| 久久99国产综合精品女同| 亚洲精品一区二区在线播放∴| 欧美午夜精品久久久久免费视| 亚洲精选国产| 国产黑丝一区二区| 亚洲大尺度视频在线观看| www.黄色片| 色中色综合影院手机版在线观看| 亚洲免费一区| 一区精品在线| 韩国精品在线观看| 日本黄色免费片| 在线电影院国产精品| аⅴ资源新版在线天堂| 国产精品久久久久久久久| 欧美禁忌电影| 国产精品69页| 国产网站一区二区三区| 国产寡妇亲子伦一区二区三区四区| 亚洲激情视频在线播放| 高清视频在线观看三级| 久久精品国产美女| 午夜一区二区三区不卡视频| 我和岳m愉情xxxⅹ视频| 色婷婷综合激情| 2021av在线| 成人黄色激情网| 欧美日韩福利| 大尺度在线观看| 岛国av一区二区| 五月天婷婷在线播放| 欧美资源在线观看| 精品国产乱码久久久久久1区2匹| 欧美午夜性生活| 国产精品久久久久影院| 国产视频第二页| 欧美极品欧美精品欧美视频 | 国产乱码字幕精品高清av | 在线国产91| 7777精品伊久久久大香线蕉语言| 午夜性色一区二区三区免费视频| 日本一区二区免费视频| 精品久久香蕉国产线看观看亚洲| 九色国产在线观看| 国产精品影片在线观看| 欧美一区二区| 五月开心播播网| 欧美视频中文字幕| 男女视频在线| 欧洲精品久久| 国产精品自拍网站| 综合激情网五月| 久久亚洲精品一区| 久久草在线视频| 亚洲77777| 亚洲国产精品综合小说图片区| 免费在线国产| 亚洲在线观看视频网站| 亚洲一区二区伦理| 小早川怜子一区二区的演员表| 精品99一区二区| 久久久久久久性潮| 欧美二区在线视频| 综合av第一页| 日韩电影网址| 91最新在线免费观看| 国产日韩欧美三级| 亚洲天堂黄色片| 精品亚洲aⅴ在线观看| 精品99re| 丁香啪啪综合成人亚洲| 一区二区三区中文字幕精品精品| 青青青草原在线| 99re在线视频观看| 热久久久久久久| 中文字幕第15页| 欧美高清视频在线播放|