我一直在浏览async/await,经过几篇文章后,我决定自己测试一下.但是,我似乎无法理解为什么这不起作用:
async function main() {
var value = await Promise.resolve('Hey there');
console.log('inside: ' + value);
return value;
}
var text = main();
console.log('outside: ' + text);
Run Code Online (Sandbox Code Playgroud)
控制台输出以下内容(节点v8.6.0):
>外面:[对象承诺]
>里面:嘿那里
为什么函数内部的日志消息会在之后执行?我认为创建async/await的原因是为了使用异步任务执行同步执行.
有没有办法可以使用函数内部返回的值而不使用asyncafter await?
在 NextJs 13+ 中,使用实验性 App 文件夹,可以编写异步服务器组件,如文档所述:
export default async function Page({ params: { username } }) {
// Initiate both requests in parallel
const artistData = getArtist(username);
const albumsData = getArtistAlbums(username);
// Wait for the promises to resolve
const [artist, albums] = await Promise.all([artistData, albumsData]);
return (
<>
<h1>{artist.name}</h1>
<Albums list={albums}></Albums>
</>
);
}
Run Code Online (Sandbox Code Playgroud)
这是一项非常有用的技术,我已经在应用程序的许多页面中实现了。但是,当使用 jest 进行测试时,我发现我无法编写任何能够呈现此默认导出的测试:
it('should render without crashing', async () => {
...(setup mocks)
const { container } = await waitFor(() => render(<Page …Run Code Online (Sandbox Code Playgroud) typescript jestjs next.js react-testing-library react-server-components
我最近开始使用Bun来运行 typescript 文件,而不将它们编译为 js。到目前为止,一切都很好。最终我想在运行时进行调试,但在文档中找不到任何有关它的信息。
如何配置我的.vscode/launch.json文件以使用bun调试项目?
我尝试使用配置但没有走得太远:
{
"version": "0.2.0",
"configurations": [
{
"name": "Bun",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "bun",
"runtimeArgs": ["run"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
浏览官方路线图,我没有看到任何有关调试的内容,但也许目前它是一个实验性功能?
我正在尝试从运行Windows Iot Core的Raspberry Pi 2播放蓝牙信号,以便我可以从智能手机和其他设备连接到它,但我在实际收到配对信号的最后几天一直困扰着.
使用Windows蓝牙文档,我能够广播信号,我可以从我的桌面和手机上看到它.但是,这是我能得到的.我希望能够在没有PIN的情况下进行配对(设备没有屏幕),但是只要选择了设备,配对就会失败.
我在用
SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication
Run Code Online (Sandbox Code Playgroud)
和
DevicePairingKinds.None
Run Code Online (Sandbox Code Playgroud)
但连接回调永远不会被击中.我查看了许多类似的问题,这些问题要么没有答案,要么没有相应的信息,因为我使用的是RPI2,而不是桌面应用程序.
我不是想通过网络界面配对,而只是通过代码
.
[UPDATE]
我已经尝试过32feet.NET库,但它似乎太旧了,无法支持PI2.我也尝试了一些NuGet包,似乎没有任何工作.
自从它添加以来,我一直在使用Visual Studio Code中的集成终端,但我注意到一个非常令人沮丧的功能/错误.
我正在使用Windows 10 Bash终端,似乎无法使用"向上"箭头访问以前的命令历史记录.这是否重新映射到另一个键或它是否只是不起作用?
我开始使用webpack,在我的第一次构建时,我注意到输出包含了一个默认文件(索引1):
build.js 222 kB 0 [emitted] main
[1] (webpack)/buildin/global.js 509 bytes {0} [built]
[2] ./source/scripts/main.js 105 bytes {0} [built]
+ 4 hidden modules
Run Code Online (Sandbox Code Playgroud)
为什么要包含此文件?我没有任何依赖项需要接近我的build.js文件中出现的代码量.我期待输出中可能有10行代码,而我有8000行代码.
我还注意到其他一些项目没有在输出中列出这个文件.这是绝对必要的吗?我甚至无法在文档中找到它.
作为参考,我的webpack.config.js文件:
'use strict';
module.exports = {
entry: './source/scripts/main.js',
output: {
path: __dirname + '/dist',
filename: 'build.js'
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/
}
]
}
}
Run Code Online (Sandbox Code Playgroud) 我花了最近几天研究MonoGame Android的AdMob集成,到目前为止还没能成功地为我刚刚制作的游戏添加横幅.到目前为止,我发现的所有答案都非常过时,我找到的所有示例都没有在最新的Android API中使用.
我在Visual Studio中使用MonoGame 3.2的开发版#983.
我试过了:
使用此github repo中的示例:/ CartBlanche/MonoGame-Samples/tree/master/AdMob
以及在这个github repo中找到的样本:/ xamarin/monodroid-samples/tree/master/AdMob
更新SDK管理器以下载Google Play服务附加功能
按照此页面上的代码示例:http://www.craftworkgames.com/blog/monogame-code-snippets/using-admob-with-monogame/
以及在互联网上发现的其他方法.在向项目添加JAVA源和JAR文件时,我一直非常谨慎地选择正确的构建选项,但我从未找到任何AdView类,而且那里的"Google Mobile Ads SDK v6.4.1"JAR不再存在谷歌支持,如下所述:https://developers.google.com/mobile-ads-sdk/
如果有人有任何新的和最新的方法将AdMob广告整合到MonoGame Android项目中,我认为答案需要刷新(我将非常感激)=)
我正在尝试修改文件流,但遇到了一些有趣的事情。当我从原始流中读取一个字符串,然后尝试将其写入新流时,我最终得到的大小比原始流大。
我没有找到任何类似的问题。有人可以澄清发生了什么吗?我逐步完成并注意到变量的大小
private Stream CopyAndChangeStreamContents(Stream input)
{
input.Position = 0; //input.Length is (long)84863
string contents = new StreamReader(input).ReadToEnd(); //contents.Length is (int)80765
Stream output = new MemoryStream();
new StreamWriter(output).Write(contents); //output.Length is (long)151950
output.Flush();
return output;
}
Run Code Online (Sandbox Code Playgroud)
编辑#2 Downvoter:该方法的评论和意图并没有解释这里发生的事情。无论正在读取什么类型的数据,我都想了解是什么底层流特性导致了如此巨大的大小差异。
读取字节时,无论它来自 zip 文件还是文本文件都没有关系,字节仍然是字节,因此如果我有输入,0110 0001 0110 0010 0110 0011 0110 0100我希望仍然读取 4 个字节。即使我将其读为字符串 'abcd',如果我完全按照我找到的方式写回二进制文件,对我来说也不会有什么不同。
为什么一个流给我的长度为 84863 而另一个流给我的长度为 151950?
编辑:我尝试使用 StreamReader 构造函数尝试读取编码:
var reader = new StreamReader(input, true);
然后在写出时使用相同的编码:
new StreamWriter(output, reader.CurrentEncoding).Write(contents);
..无济于事。同样的问题。
我已经在nativescript中实现了角度路由导航,我遇到了糟糕的性能,我似乎无法找到它的瓶颈.
这是当前的设置
???????????????????????????????????????????????????????????????????????
? Component ? Current version ? Latest version ? Information ?
? nativescript ? 2.3.0 ? 2.3.0 ? Up to date ?
? tns-core-modules ? 2.3.0 ? 2.3.0 ? Up to date ?
? tns-android ? 2.3.0 ? 2.3.0 ? Up to date ?
? tns-ios ? ? 2.3.0 ? Not installed ?
???????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
可以在这里看到存储库:https: //github.com/felipemullen/teras
您可以看到它是一个基于示例存储库的非常简单的结构.但是,从一个页面到另一个页面的转换大约需要3-4秒,这非常糟糕.
以下是一些截图,展示了应用程序的简单性,几乎没有任何绑定,也没有加载任何数据.所有这一切都是一个按钮通向另一个页面:
所以问题是,为什么这些页面加载速度如此之慢?这只是因为nativescript还很年轻吗?我玩了演示应用程序,他们似乎没有这个问题.
performance nativescript angular2-routing angular2-nativescript angular
使用新的Firestore,我的结构如下所示:
{
...
"username": "mr_jones",
"date_created": 1508395138572,
"stats": {
"posts": 143,
...
},
...
}
Run Code Online (Sandbox Code Playgroud)
根据文档,我可以对查询进行排序和限制,以便基于where子句过滤数据。如何根据这些数据排序stats.posts?
即
usersRef.orderBy('stats.posts').limit(15);
Run Code Online (Sandbox Code Playgroud) 我经常启动Node Js终端以运行小任务或检查一些数据。当前的局限性是我不能等待异步功能:
mymachine$ node
> const request = require('request-promise-native')
undefined
> await request('https://google.com')
Thrown:
await request('https://google.com')
^^^^^
SyntaxError: await is only valid in async function
Run Code Online (Sandbox Code Playgroud)
我最终不得不做这样的事情
> let data;
undefined
> request('https://google.com').then(x => data = x)
Promise { <pending> }
> data.length
46262
Run Code Online (Sandbox Code Playgroud)
但这带来一些不便。还有其他选择可以使我await在节点终端中链接一系列命令吗?
javascript ×5
node.js ×3
c# ×2
terminal ×2
typescript ×2
.net ×1
admob ×1
android ×1
angular ×1
async-await ×1
bash ×1
bluetooth ×1
build ×1
bun ×1
debugging ×1
firebase ×1
jestjs ×1
memory ×1
monogame ×1
nativescript ×1
next.js ×1
npm ×1
pairing ×1
performance ×1
stream ×1
webpack ×1
windows ×1