zoukankan      html  css  js  c++  java
  • [Compose] 11. Use Task for Asynchronous Actions

    We refactor a standard node callback style workflow into a composed task-based workflow.

    For example we have the code as following:

    We want to wrap async functions (readFile and writeFile) into Task. Therefore it becomes composeable.

    const Task = require('data.task')
    const fs = require('fs')
    
    const readFile = name => 
      new Task((rej, res) => 
              fs.readFile(name, 'utf-8',
                          (err, contents) => err ? rej(err) : res(contents)));
    
    const writeFile = (name, content) => 
      new Task((rej, res) => 
              fs.writeFile(name, contents, 
                           (err, _) => err ? rej(err): res(content)));
    
    const app = () => 
      readFile('config.json') //return Task()
        .map(contents => contents.replace(/8/g, '6'))
        .chain(replaced => wirteFile('config.json',  replaced));  //flat Task(Task()) --> Task()
    
    app.fork(console.error, console.log);
  • 相关阅读:
    easyui
    mvc
    Servlet简单计算器 2.0
    简易Servlet计算器1.0
    javaBean 练习—封装学生信息
    application和javaBean练习
    远程存储程序
    通讯录
    黑名单管理代码总结
    DAO
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6197973.html
Copyright © 2011-2022 走看看