【问题标题】:Trying to create a minimalist pure js app with rxjs尝试用 rxjs 创建一个极简的纯 js 应用
【发布时间】:2019-08-31 06:48:48
【问题描述】:

尝试用rxjs创建一个极简的纯js应用。

流程:

  1. npm install rxjs
  2. index.html
  3. myscript.js

索引.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">    
    <script src="node_modules/rxjs/bundles/rxjs.umd.min.js" ></script> 
    <script src="myscript.js"></script>    
    <title>Document</title>
</head>
<body>    
</body>
</html>

myscript.js:

rxjs.Observable.FromEvent(document, 'mousemove')
    .subscribe(()=> console.log("text!"));

我收到错误“Uncaught TypeError: rxjs.Observable.FromEvent is not a function”

尝试导入失败:

导入'rxjs/add/observable/fromEvent'; //SyntaxError: 意外字符串

从 'rxjs' 导入 { fromEvent }; //SyntaxError: Unexpected token {

我做错了什么?如何在纯 js 上尝试 rxjs?

【问题讨论】:

  • 试试import { from, fromEvent } from 'rxjs';
  • 对于CDN,你可以使用unpkg:&lt;script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"&gt;&lt;/script&gt;然后,javascript const { range } = rxjs; const { map, filter } = rxjs.operators;
  • 谢谢你们的回答。

标签: javascript rxjs


【解决方案1】:

对于 RxJS v6,从 rxjs 获取工厂函数,从 rxjs.operators 获取操作符。

这是一个 CDN 源的示例:

var { fromEvent } = rxjs;
var { map } = rxjs.operators;


var theButton = document.getElementById('the-btn');

fromEvent(theButton, 'click').pipe(
  // pipe some operators here
  map(() => Date.now())
).subscribe(date => {
  console.log('Clicked at ' + date);
});
<script src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>

<button
  id="the-btn"
  >Clicker</button>

【讨论】:

  • 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 2020-12-06
  • 2014-12-06
  • 1970-01-01
相关资源
最近更新 更多