zoukankan      html  css  js  c++  java
  • Node.js用ES6原生Promise对异步函数进行封装

     

    目录(?)[+]

     

    Promise的概念

    Promise 对象用于异步(asynchronous)计算.。一个Promise对象代表着一个还未完成,但预期将来会完成的操作。

    Promise的几种状态:

    • pending:初始状态,即等待操作的执行
    • fulfilled:成功的操作
    • rejected:失败的操作

    pending的状态既可以转为fulfilled,也可以转为rejected,当状态发生改变时,promise.then(onFulfilled, onRejected)方法将被调用

    Promise的基本用法

    1.首先创建一个Promise的实例

    var promise = new Promise(function(resolve, reject){
        //do something
        if(success){
            resolve(value);
        } else {
            reject(value);
        }
    });

    用Promise来封装异步函数

    Node.js中的IO操作都是异步的,因此在写异步程序的过程中容易掉进回调大坑

    知道了Promise的基本调用过程,我们就可以用来封装异步的函数了

    1.定义函数

    function sendRequest(){
        return new Promise(function(resolve, reject){
            var req = http.request(options, function(res){
                var data = '';
                res.on('data', function(chunk){
                    data += chunk;
                });
    
                res.on('end', function(){
                    //成功后调用
                    resolve(data);
                });
            });
    
            req.on('error', function(err){
                //失败后调用
                reject(err);
            });
    
            req.end();
        });
    }

    2.调用函数

    sendRequest().then(function(data){
        console.log(data);
    }).catch(function(err){
        console.log(err);
    });

     

  • 相关阅读:
    Boostrap响应式与非响应式
    Linux文件处理命令
    Linux各目录作用
    linux系统安装
    并发编程之基础( 五)
    Extjs自定义验证介绍
    javascrict中innerhtml和innerText的关系
    List泛型的应用
    winform项目改项目名称
    math.random用法
  • 原文地址:https://www.cnblogs.com/Gbeniot/p/7337332.html
Copyright © 2011-2022 走看看