我有一个JS对象,我想保存在本地存储中供将来使用,我无法将其解析为字符串.
码:
JSON.stringify({
a: 5,
b: function (param) {
return param;
}
})
Run Code Online (Sandbox Code Playgroud)
结果:
"{"a":5}"
Run Code Online (Sandbox Code Playgroud)
如果不使用JSON,如何保存以备将来使用?
(并创建我自己的Lexer-Parser以中断字符串函数我不认为是一个选项)
我有分量B
,C
,D
从类继承A
.
我想在课堂上使用一个服务A
,但我不知道如何注入它,而不是从孩子那里注入它.
我尝试的是正常注入:
constructor(pageName: string = null, translate: TranslateService) {
但是当我super()
构建类时A
,它会抛出错误,因为我没有提供第二个参数.
有没有办法使用Angular 2注入父类?
我被迫使用的Angular版本是:2.2.1
编辑:
一些示例案例:我有很多页面,每个页面都可以显示一个加载器.我不想每次都注入加载器,而是从每个页面管理加载器,我想:
export class BaseComponent {
constructor(private loader: LoadingService) {}
showLoading() {
this.loader.show();
}
}
Run Code Online (Sandbox Code Playgroud)
然后从组件本身继承:
@Component({
selector: "page-login",
providers: [UsersService],
templateUrl: "login.html"
})
export class LoginPage extends BaseComponent {
constructor(private usersService: UsersService) {
super();
}
}
Run Code Online (Sandbox Code Playgroud)
现在LoginPage
有一个showLoading
来自它的父方法.
我想从上传到我的网站的多个图像创建一个视频文件。
到目前为止,我所做的就是拍摄这些图像,将它们一一绘制在画布上,然后使用 APIMediaRecorder
来记录它们。不过,空闲时间还是很多的。
相反,我想使用VideoEncoder
API。
我创建了一个编码器,将每个块保存为缓冲区:
const chunks = [];
let encoder = new VideoEncoder({
output: (chunk) => {
const buffer = new ArrayBuffer(chunk.byteLength)
chunk.copyTo(buffer);
chunks.push(buffer);
},
error: (e) => console.error(e.message)
});
Run Code Online (Sandbox Code Playgroud)
并使用我的设置对其进行配置:
encoder.configure({
codec: 'vp8',
width: 256,
height: 256,
bitrate: 2_000_000,
framerate: 25
});
Run Code Online (Sandbox Code Playgroud)
然后,我将每个图像编码为帧:
const frame = new VideoFrame(await createImageBitmap(image));
encoder.encode(frame, {keyFrame: true});
frame.close();
Run Code Online (Sandbox Code Playgroud)
最后,我尝试用它创建一个视频:
await encoder.flush();
const blob = new Blob(chunks, {type: 'video/webm; codecs=vp8'});
const url = URL.createObjectURL(blob);
Run Code Online (Sandbox Code Playgroud)
但是,该 URL 块无法播放。如果我尝试下载它,VLC 不会显示它。如果我将其设置为元素的源video
,我会得到: …
我正在使用Ionic,并希望将音频录制到文件中,然后对文件执行某些操作.
运行于:Galaxy S4
首先,我创建文件:
await this.file.createFile(this.getFileDirectory(), this.getFileName(), true);
Run Code Online (Sandbox Code Playgroud)
准备好后,我创建一个新Media
实例:
this.currentRecording = this.media.create(this.getFilePath());
Run Code Online (Sandbox Code Playgroud)
附加成功和错误侦听器:
this.currentRecording.onSuccess.subscribe((e) => {
console.log(this.currentRecording.getDuration());
this.file.readAsArrayBuffer(this.getFileDirectory(), this.getFileName())
.then(file => console.warn(file))
});
this.currentRecording.onError.subscribe((err) => console.error(err));
Run Code Online (Sandbox Code Playgroud)
然后我开始录音:
this.currentRecording.startRecord();
几秒钟后,我停止录制this.currentRecording.stopRecord()
,并执行成功回调.
在控制台中,我现在看到了
-1 // console.log(this.currentRecording.getDuration());
ArrayBuffer {} // console.warn(file);
难道我做错了什么?它怎么解决成功,但没有文件,没有持续时间?
编辑
复制存储库:https://github.com/AmitMY/ionic-media-record-repro
README有完整的说明
我在类中有一个方法,该方法需要循环执行大量工作,我想将工作分散到我的所有核心上。
我编写了以下代码,如果我使用normal map
,则可以使用,但是pool.map
返回错误。
import multiprocessing
pool = multiprocessing.Pool(multiprocessing.cpu_count() - 1)
class OtherClass:
def run(sentence, graph):
return False
class SomeClass:
def __init__(self):
self.sentences = [["Some string"]]
self.graphs = ["string"]
def some_method(self):
other = OtherClass()
def single(params):
sentences, graph = params
return [other.run(sentence, graph) for sentence in sentences]
return list(pool.map(single, zip(self.sentences, self.graphs)))
SomeClass().some_method()
Run Code Online (Sandbox Code Playgroud)
错误:
AttributeError:无法腌制本地对象“ SomeClass.some_method..single”
为什么不能泡菜single
?我什至尝试移动single
到全局模块范围(不在类内部-使其独立于上下文):
import multiprocessing
pool = multiprocessing.Pool(multiprocessing.cpu_count() - 1)
class OtherClass:
def run(sentence, graph):
return False
def single(params):
other = …
Run Code Online (Sandbox Code Playgroud) 有没有办法使angular-cli ng buil --prod
命令也将文件/目录复制到dist文件夹?
我的项目包括一个"server"文件夹和一个root的"config.js"文件,我需要将它们复制到"dist",以便在构建时,我不需要记住复制这些目录
我有一个每秒执行几次的 HTTP 函数(我没有确切的统计数据)。
有时,请求会像预期的那样返回数据,有时它会返回此错误文本:
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>500 Server Error</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Server Error</h1>
<h2>The server encountered an error and could not complete your request.<p>Please try again in 30 seconds.</h2>
<h2></h2>
</body></html>
Run Code Online (Sandbox Code Playgroud)
发生这种情况时,我的所有 HTTP 函数都会发生这种情况。5 分钟后提出相同的请求通常有效。
现在,我可以想象它是我的代码中的错误,但我使用中间件来捕获所有错误并以 JSON 响应!
这是我导出的云函数:
const app = express();
app.use(cors({origin: true, credentials: true})); // Allow cross-origin requests
app.get('/', this.reportRequest.bind(this));
app.use(errorMiddleware); // Handle errors
export const report = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)
这是errorMiddleware
:
export const errorMiddleware: ErrorRequestHandler = async (e, req, res, next) …
Run Code Online (Sandbox Code Playgroud) 有一个应用程序想要使用oAuth2与我的用户进行身份验证.
所以他们打开一个窗口,带有authorize
URL和参数(例如重定向uri)
喜欢:https://my-website.com/api/authLauncherauthorize?redirect = SOME_URI
现在我有自己的firebase-login,当用户登录时,我从firebase获取他们的访问令牌.这是我想要回应的内容.
但是,在oAuth2指南/解释中,如https://aaronparecki.com/oauth-2-simplified/我看到我应该返回一个授权码,我不明白我从哪里可以得到它?
我能做的是,生成一个废话代码,将它在数据库中与访问令牌配对,然后在"令牌"请求中发送正确的访问令牌.那是我应该做的吗?
为了清楚起见,这是我第一次自己编写oAuth2服务.
如果云功能超时,我希望将其作为日志中的错误,以便跟踪功能的运行状况,并在必要时采取措施提高速度。
是否可以将该日志显示为错误?
另外,有没有办法捕捉这种超时?我有一个函数,如果抛出异常,则将某些内容保存到实时数据库中。是否也可以捕获此错误?
Firebase 响应:
感谢您与我们联系,并向我们提供反馈。我是来自 Firebase 支持的 Kyle,我很乐意处理这个关于 Cloud Functions with Firebase 的案例。
我知道云函数超时应该被视为“错误”而不是“信息”日志。我也同意在未来版本的 Cloud Functions 中包含另一个响应超时事件的触发器,如 functions.onTimeout() 会非常酷。
为此,请注意,我已经将您关于将函数超时视为错误日志而不是信息日志的反馈(和用例)进行了级联。我还提交了一份内部功能请求票,以征求您关于使用 functions.onTimeout() 触发器的建议。这将被处理以在团队内部进行讨论,但我无法提供任何 ETA 或具体时间表,以说明何时实施此请求的功能。同时,您可以关注我们的发行说明和 Firebase 博客,了解 Firebase 为我们尊贵的开发人员提供的即将推出的功能和错误修复。
我的应用程序使用 MediaRecorder api 生成类型为 的视频文件video/webm
。
我试图通过以下方式将此文件复制到剪贴板:
const item = new ClipboardItem({['video/webm']: blob});
await navigator.clipboard.write([item]);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
错误 DOMException:写入时不支持类型 video/webm。
支持哪些 MIME 类型clipboard.write
?是否有支持的视频 MIME 类型?
在 Safari (Webkit) 上,支持四种: https://webkit.org/blog/10855/async-clipboard-api/
firebase ×3
javascript ×2
angular ×1
angular-cli ×1
browser ×1
express ×1
html5-video ×1
ionic2 ×1
json ×1
oauth-2.0 ×1
python ×1
video ×1
webcodecs ×1