node中对异步操作做promise封装什么意思?

2021-01-19 20:36发布

node中对异步操作做promise封装什么意思?

node中对异步操作做promise封装什么意思?

3条回答
我是大脸猫
2楼 · 2021-01-21 10:57

有些方法需要Promise
示例:
function serverYDYN() {
 //修改
 this.updateContent = function (id, newContent) {
        var promise = new Promise(function (resolve, reject) {
            pool.getConnection((err, connection) => {
                if (err) {
                    console.log("连接失败");
                } else {
                    let sql = "UPDATE ydyn1 SET content='" + newContent + "'WHERE id='" + id + "'";
                    connection.query(sql, function (err, result) {
                        if (err) {
                            console.log('[修改content错误] - ', err.message);
                            return reject(err);
                        }
                        console.log('修改content result:\n', result);
                        return resolve(result);
                    });
                    connection.release();
                }
            });
        });
        return promise;
    };
}

module.exports = serverYDYN;1234567891011121314151617181920212223242526
使用:
const serverYDYN = require('./sqlServerYDYN'); 

app.put('/updateContent', function (request, res) {
  let newContent = request.body.content;
  let id = request._parsedUrl.query;
  sqlServer.updateContent(id,newContent).then(
    result => {
      console.log('修改成功 res',result);
      res.send('sucess');
    }
  ).catch(
    err => {
      console.log('修改错误',err)
    }
  );
});

椰子椰子
3楼 · 2021-01-21 17:21

建议在网上找一些教学视频看一看

桃酥超好吃
4楼 · 2021-01-22 19:49

有些地方需要频繁的调用promise,就直接封装一个promise,在需要的时候传参调用。


function setPromise() {

        let p = new Promise((resolve, reject) => {

            let flag = Boolean('判断条件')

            if(flag) {

                // 成功时进行调用,并将异步操作的结果,作为参数传递出去

                resolve('value1');

            } else {

                // 失败时进行调用,并将异步操作报出的错误,作为参数传递出去

                reject('value2');

            }

        })

        return p; 

    }


声明一个变量接受函数的返回值,该返回值是一个promise,之后通过 .then ... .catch 获取promise的结果

    let p2 = setPromise();

    p2.then(res => {

         // 成功的操作

        console.log(res);    // value1

    }).catch(err => {

         // 失败的操作

        console.log(err);

    })




相关问题推荐

  • 回答 15

    对于新入门的小伙伴来说,选择一个合适的nodejs框架可能是一件很头疼的事情,我最初也为这个头疼过,下面分享一下我的框架选择之路nodejs的框架最近来node的火热,带动了一大批的框架,例如express koa sails loopback thinkjs egg这些是我比较过的框架,下面...

  • PHP与Node.js的区别2021-01-18 10:23
    回答 19

    PHP胜出:代码与内容混合大家在输入的过程中当然希望能将自己的思路直接转化为网站的文本内容,同时还要为进程添加分支、一部分if-then语句以保证站点拥有漂亮的视觉效果,具体取决于URL中的某些参数。又或者,我们希望能够利用单一数据库将文本或者数据加以...

  • 回答 9
    已采纳

    这个问题涉及到的是整个web开发体系的变更。我尽量长话短说,有问题可以继续留言。现在的web开发体系可以说是在15年后才逐渐形成,因为15年比较特殊,html5和ES6都是在这一年发布,css3的最后一次更新在2014年。这些变更带来的变化是产生了前后分离的开发方式...

  • 回答 3

    初次接触nodejs确实有一些难度,因为思路语法都和js有了一些差别,属于后端思想,所以需要楼主多下功夫,进行系统学习之后就容易接受了

  • 回答 13

    //首先卸载已安装的node-sasscnpm uninstall node-sass//重新安装cnpm install node-sass//如果报关于gyp的错,安装相关的gyp编译环境npm install -g node-gyp//再重复执行以上的卸载安装步骤//安装完成启动项目试试npm run dev...

  • 回答 10

    node.js 和 javascript 从本质上来说没有什么区别,语言是一样的,都是javascript语言编写。但是,node.js 主要从事后台操作,javascript主要操作HTML的元素(前端)。

  • 回答 8

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。(事件驱动:事件触发过程中,进行决策的一种策略,简单说就是跟随当前时间点上出现的事物,调用可用的资源进行解决该事物...

  • 回答 10

    global 最根本的作用是作为全局变量的宿bai主。按照ECMAScript 的定义,满足以下条 件的变量是全局变量:在最外层定义的变量;全局对象的属性;隐式定义的变量(未定义直接赋值的变量)。当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦...

  • 回答 4

        webpack构建工具是基于node平台的, 所以在安装之前必须先安装nodejs. 接在来就可以通过npm包管理工具在线安装webpack了.    对于webpack构建工具, 即可全局安装, 也可以局部安装. 一般情况下,大多数会采用局部安装, 因为每一个项目需要对webpack...

  • 回答 3

    vue-cli脚手架是基于node平台的, 所以安装之前, 必须先安装nodejs. 之后直接通过npm包管理工具即可完成vue-cli脚手架工具的安装. 目前市面上流行的vue-cli脚手架有两个版本, 接下来分别演示下:安装vue-cli-2.x版本// -g 表示全局安装 npm install vue-cli...

  • 回答 3

    1.打开node官网 https://nodejs.org/en/,选择 other Downloads,2.安装Windows Binary 64位或者32位3.将你减压后的路径保存一份,如(D:\soft\node-v10.16.3-win-x64)4.找到系统路径(控制面板-》系统-》高级系统设置-》环境变量-》path),获取到 5.找到...

  • 回答 5

    一、安装环境1、本机系统:Windows 10 Pro(64位)2、Node.js:v6.9.2LTS(64位)二、安装Node.js步骤1、下载对应你系统的Node.js版本2、选安装目录进行安装3、环境配置4、测试

  • 回答 4

    Node.js是一个基于Chrome v8引擎建立的JavaScript运行平台,用于搭建响应速度快、易于扩展的网络应用。本文和大家分享的是Node.js的一些特点,希望对大家有帮助。  异步I/O  这里,我们来详细解释一下:  异步是什么意思  比如说你的爸,今天要叫你做...

  • 回答 5

    dejs适用于I/O密集的应用,而不太适用于计算密集的应用我用 Node.js 开发了 Am I Hacked,算是有一点用 Node.js 支持大流量的经验。先列一些数字服务器是 Linode 512,也就是 Linode 上最低端的。...

没有解决我的问题,去提问