1. 程式人生 > >Node.js多個非同步回撥的處理

Node.js多個非同步回撥的處理

問題

經常有人在問,多個ajax請求,怎麼在請求都結束之後再處理資料。這個問題在做前端的時候,我沒遇見過。但是最近在做node後端的時候,遇見了:就是node後端傳送多個網路請求,要在請求結束之後再處理資料,這裡和ajax的那個問題是一樣的。

解決

這裡使用了一個依賴包async
關於他的使用這裡可以看文件即可。這裡使用了一個each
這裡寫圖片描述

例項

新增依賴

var request = require('request'); 
var async = require("async");

例項程式碼

var i = 0;
var urlArray = ['地址1','地址2'
,……,'地址n']; var urlLen = urlArray.length; async.each(urlArray,function iteratee(item, callback){ request({ url: item }, function (error, response, body) { i ++ ; if (i == urlLen) { // n個請求都完成了 這裡做想做的事 } }) })

延伸

在node.js裡面回撥是很多的,這裡既然可以做網路部分的回撥,那麼也可以做其他部分的,具體就需要發揮自己的拓展遷移能力了。

相關推薦

Node.js非同步處理

問題 經常有人在問,多個ajax請求,怎麼在請求都結束之後再處理資料。這個問題在做前端的時候,我沒遇見過。但是最近在做node後端的時候,遇見了:就是node後端傳送多個網路請求,要在請求結束之後再處理資料,這裡和ajax的那個問題是一樣的。 解決 這裡使

Node.js實戰(八)之函式

Node.js 非同步程式設計的直接體現就是回撥。 非同步程式設計依託於回撥來實現,但不能說使用了回撥後程序就非同步化了。 回撥函式在完成任務後就會被呼叫,Node 使用了大量的回撥函式,Node 所有 API 都支援回撥函式。 例如,我們可以一邊讀取檔案,一邊執行其他命令,在檔案讀取完成後,我們將檔案

Node.js 第四章 - 函式

一,Node.js非同步程式設計,直接體現的就是回撥。 1.1Node使用大量的回撥函式。 1.2 Node所有的 API都支援回撥函式。 1.3執行程式碼就沒阻塞或等待檔案I/O操作。 1.4 提高效能,可以處理大量的併發請求。 阻塞程式碼,具體操作例項,參照: http:

Async.js解決Node.js操作MySQL的大坑

由於JavaScript語言非同步特性,在使用Node.js執行很多操作時都會使用到回撥函式,其中就包括訪問資料庫。如果程式碼中的業務邏輯稍微複雜一點,回撥一層層巢狀,那麼程式碼很容易進入Callback Hell,無論對寫程式碼的人還是閱讀程式碼的人,都是精神

js非同步請求

一,兩個(或多個)js非同步併發執行,怎麼在兩個AJax非同步操作之後執行一個新的操作 原題來自 ES6 方法 1.Promise 包裝非同步ajax操作,2.定義async 函式,3.用await等待promise資料非同步獲取完成這一種方法簡潔高效,下面請看我專門給你寫的示例程式碼

處理微信支付的非同步

/** * 微信支付非同步回撥(只有非同步回撥對訂單進行處理) */ public function wchatUrlBack() { $postStr = file_get_contents('php://input'); i

JS 非同步

Js 非同步回撥 回撥概念:回撥是一個函式被作為一個引數傳遞到另一個函式裡,在那個函式執行完後再執行。 有點繞,好,咱們說大白話。就是B函式被作為引數傳遞到A函式裡,在A函式執行完後再執行B。   下面咱們看看程式碼怎麼實現回撥。 function A(callback){  &

js同步非同步 函式

js同步非同步 同步 指的是一次只能完成一件任務。如果有多個任務,就必須排隊,前面一個任務完成,再執行後面一個任務,以此類推。 非同步 是指每一個任務有一個或多個回撥函式,前一個任務結束後,不是執行後一個任務,而是執行回撥函式,後一個任務則是不等前一個任務結束就

ThreadUtil 執行緒處理List,處理具體的任務

每次想多執行緒處理一個大的結果集的時候 都需要寫一大堆程式碼,自己寫了個工具類 方便使用 package com.guige.fss.common.util; import com.guige.fss.common.exception.BusinessException; im

js中的for迴圈與非同步函式執行順序問題

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                for(i=localStorage.length-1;i>=0;i--){//從後往前依次取每條localstorage local_key=local

PHP微信APP支付,下單,處理非同步

1.下單 其中陣列轉換xml格式,curl傳送請求,xml格式轉換成陣列可單獨封裝成函式。 public function index() { $order = [ 'appid'=>'12345

extjs 迴圈執行非同步請求時,引數和後臺以及相關問題和衍生問題的處理

在Extjs中,非同步請求的寫法: Ext.Ajax.request({ url: '***.action', //async: false, params: { p1: v1, p2: v2 ... }, success: function(resp

支付寶即時到賬介面,非同步post請求的接受,Jersey 處理post引數的方法

/** * 支付寶非同步回撥處理 * * @author simon * @date 2016/3/24 * */ @POST @Pa

JS基礎——非同步

前言一個剛入前端的小菜,雖然以前看到過關於回撥的文章,但是呢,理解起來有點費勁啊。當時的腦海裡就一個概念。回撥:大多出現在Ajax請求,用於處理收到的請求結果。嘿嘿,當時真的就是這一個想法啊。現在真的入這行,而且這個概念也非常重要,用的地方太多太多,是時候把它撿起來好好理解一

node.js中同步/非同步處理模組async解析

Async非同步處理模組! 安裝很簡單,就跟普通的安裝模組一樣就行了 npm install --save-dev async 這樣就安裝成功了! 接下來就是引用了,在程式碼裡引用模組: var async = require('async'); 這樣引用也就ok了

Nodejs非同步之異常處理例項

目前我們專案的Nodejs異常是通過express next 到 errorhandler 中介軟體去處理的, 原本以為此方法可以捕獲到所有的異常,但事實發現並非如此。 下面以一個異常舉例子: req.get('',function(req, res, nex

js 非同步函式的用法

function gettime(){         var time;         $.ajax({           url:"?action=gettime",           async:false,           type:"GET",      

PHP微信APP支付,下單,處理非同步——————微信支付這個坑

1.下單 其中陣列轉換xml格式,curl傳送請求,xml格式轉換成陣列可單獨封裝成函式。     public function index() {         $order = [             'appid'=>'123456',     

Async.js解決Node.js操作MySQL的調大坑

tty 類型 發生 獲取 rollback github data- map dsm 因為JavaScript語言異步特性。在使用Node.js運行非常多操作時都會使用到回調函數,當中就包含訪問數據庫。假設代碼中的業務邏輯略微復雜一點,回調一層層嵌套。那

php5.6 微信退款處理(AES-256-ECB+PKCS7Padding)

微信退款的回撥中有個欄位是req_info。該欄位微信官方給的解密方法是: 解密步驟如下:  (1)對加密串A做base64解碼,得到加密串B (2)對商戶key做md5,得到32位小寫key* ( key設定路徑:微信商戶平臺(pay.weixin.qq.com)-->