Rx javascript: Difference between revisions

From bibbleWiki
Jump to navigation Jump to search
Line 74: Line 74:
==Scripts Configuration==
==Scripts Configuration==
In the package.json we can not set our scripts for npm  
In the package.json we can not set our scripts for npm  
<syntaxhighlight lang="html">
<syntaxhighlight lang="json">
"scripts": {
"scripts": {
     "start": "webpack-dev-server --watch --inline",
     "start": "webpack-dev-server --watch --inline",
     "postinstall": "typings install"  
     "postinstall": "typings install"  
}
}
</syntaxhighlight>
=Basic Example=
Quite liked the explanation but it would be nice if there was an interface for this rather than just pojs - see getting the lingo. Anyway your responsibility is to provide  a class which implements next, error and complete. You do not need to implement all but it is shown here
<syntaxhighlight lang="ts">
import { from as ObservableFrom } from 'rxjs';
let numbers = [1,2,3,40]
let values = ObservableFrom(numbers)
class MyObserverable
{
    next(value) {
        console.log(`"Value received was ${value}`)
    }
    error(e) {
        console.error(`We had an error ${e}`)
    }
    complete() {
        console.log("Complete")
    }
}
values.subscribe(new MyObserverable)
</syntaxhighlight>
</syntaxhighlight>

Revision as of 03:45, 2 September 2020

Introduction

Packages

The course used the following tools

 "dependencies": {
    "rxjs": "^6.6.2"
  },
  "devDependencies": {
    "ts-loader": "^8.0.3",
    "typescript": "^4.0.2",
    "typings": "^2.1.1",
    "webpack": "^4.44.1",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.0"
  }

Typescript Configuration

I used the following tsconfig.json.

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "sourceMap": true
    }
}

Webpack Configuration

Specify

  • the entry point
  • the output file
  • add script tag to index.html
  • Provide module loaders, which consists of a test and which loader to use
  • Provide how Webpack should resolve modules
module.exports = {
    entry: "./main",
    output: {filename: "app.js"},
    module: {
        rules: [
            {
                test: /.ts$/,
                use: "ts-loader",
                exclude: "/node_modules",
            }
        ]
    },
    resolve: {
        extensions: [
            ".ts",
            ".js"
        ],
    }
}

And the main.ts

alert("ok")

And in the Index.html

<html>
	<head>
		<title>RxJs</title>
	</head>
	<body>
		<div>hello</div>
		<script src="app.js"></script>
	</body>
</html>

Scripts Configuration

In the package.json we can not set our scripts for npm

"scripts": {
    "start": "webpack-dev-server --watch --inline",
    "postinstall": "typings install" 
}

Basic Example

Quite liked the explanation but it would be nice if there was an interface for this rather than just pojs - see getting the lingo. Anyway your responsibility is to provide a class which implements next, error and complete. You do not need to implement all but it is shown here

import { from as ObservableFrom } from 'rxjs';

let numbers = [1,2,3,40]

let values = ObservableFrom(numbers)

class MyObserverable
{
    next(value) {
        console.log(`"Value received was ${value}`)
    }

    error(e) {
        console.error(`We had an error ${e}`)
    }
    complete() {
        console.log("Complete")
    }
}

values.subscribe(new MyObserverable)