美文网首页
Javascript简单实现middleware

Javascript简单实现middleware

作者: 梁王io | 来源:发表于2017-09-19 09:49 被阅读30次

前言

自己遇到的一个面试题,感觉挺有趣的。

实现效果(需求)

完成fun函数

function fun1(ctx, next) {
  ctx.index++;
  next();
}
function fun2(ctx, next) {
  setTimeout(function() {
    ctx.index++;
    next();
  }, 1000);
}
function fun3(ctx, next) {
  ctx.index++;
}

function fun() {
}
var obj = {index:0}
fun([fun1,fun2,fun3], obj) //按fun1,fun2,fun3的顺序,遇到next到下一个函数。最后对象的index应该是3 

实现代码

function fun1(ctx, next) {
  ctx.index++;
  console.log(1);
  next();
}
function fun2(ctx, next) {
  setTimeout(function() {
    ctx.index++;
    console.log(2);
    next();
  }, 1000);
}
function fun3(ctx, next) {
  ctx.index++;
  console.log(3);
}

function fun(funarr, ctx) {
  let funIndex =0;
  function next() {
    funIndex++;
    funarr[funIndex] && funarr[funIndex].call(null, ctx, next);
  }
  funarr[0](ctx, next);
}
var obj = {index:0}

后记

后面有时间研究一下express中间件的实现解析。

相关文章

  • Javascript简单实现middleware

    前言 自己遇到的一个面试题,感觉挺有趣的。 实现效果(需求) 完成fun函数 实现代码 后记 后面有时间研究一下e...

  • JavaScript简单实现栈

    JavaScript简单实现栈主要是通过数组实现,以下是简单实现的代码

  • javaScript简单实现字典

    JavaScript的字典通过Set进行了实现,关于Set的详情请看MDN[%5Bhttps://develope...

  • javaScript简单实现链表

    JavaScript没有直接的链表实现,以下是自己对链表的简单实现 实现之后进行如下调用:var linkedLi...

  • 斌斌学院JS-task5

    任务目的 学习与实践JavaScript的基本语法、语言特性 练习使用JavaScript实现简单的排序算法 任务...

  • django middleware简单分析

    在阅读资料的时候,经常见到资料上说,django处理请求流程的时候,是先middleware处理,如果没有返回re...

  • 好用的Middleware实现

    koa的Middleware--经典的洋葱造型,在执行一个操作之前会先一层层的执行配置好的中间件,操作执行结束后再...

  • 2018-11-10

    简单计算器(JavaScript实现) 功能比较简单,还需完善。 效果: HTML部分:

  • javascript实现简单的trello实例

    trello for javascript. 简单的trello实例,用来实现鼠标拖拽停放。 作者:justjavaz

  • Javascript Lambda的简单实现

    由来 今早面试看到一题是说使用js实现.net中的where功能,当时脑子里一片空白,只能回来脑补下(本来想将博客...

网友评论

      本文标题:Javascript简单实现middleware

      本文链接:https://www.haomeiwen.com/subject/kftwsxtx.html