小编Fel*_*ipe的帖子

如何在顶层使用async/await?

我一直在浏览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?

javascript node.js async-await ecmascript-2017

117
推荐指数
9
解决办法
4万
查看次数

在 Next 13 中使用 Jest 测试异步服务器组件

在 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

16
推荐指数
1
解决办法
6642
查看次数

如何使用 Bun.sh 在 VSCode 中调试 JavaScript / Typescript

我最近开始使用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)

浏览官方路线图,我没有看到任何有关调试的内容,但也许目前它是一个实验性功能?

javascript debugging typescript visual-studio-code bun

9
推荐指数
1
解决办法
3134
查看次数

Windows iot/apps程序化蓝牙配对

我正在尝试从运行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包,似乎没有任何工作.

c# bluetooth raspberry-pi2 windows-10-iot-core pairing

8
推荐指数
1
解决办法
1649
查看次数

VSCode终端以前的命令

自从它添加以来,我一直在使用Visual Studio Code中的集成终端,但我注意到一个非常令人沮丧的功能/错误.

我正在使用Windows 10 Bash终端,似乎无法使用"向上"箭头访问以前的命令历史记录.这是否重新映射到另一个键或它是否只是不起作用?

windows bash terminal keyboard-shortcuts visual-studio-code

8
推荐指数
1
解决办法
2654
查看次数

为什么webpack构建global.js?

我开始使用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)

javascript build npm webpack

6
推荐指数
1
解决办法
1008
查看次数

如何在最新的MonoGame Android(XNA)中集成AdMob广告?

我花了最近几天研究MonoGame Android的AdMob集成,到目前为止还没能成功地为我刚刚制作的游戏添加横幅.到目前为止,我发现的所有答案都非常过时,我找到的所有示例都没有在最新的Android API中使用.

我在Visual Studio中使用MonoGame 3.2的开发版#983.

我试过了:

以及在互联网上发现的其他方法.在向项目添加JAVA源和JAR文件时,我一直非常谨慎地选择正确的构建选项,但我从未找到任何AdView类,而且那里的"Google Mobile Ads SDK v6.4.1"JAR不再存在谷歌支持,如下所述:https://developers.google.com/mobile-ads-sdk/

如果有人有任何新的和最新的方法将AdMob广告整合到MonoGame Android项目中,我认为答案需要刷新(我将非常感激)=)

android admob monogame

4
推荐指数
1
解决办法
3295
查看次数

为什么这个副本 Stream 比它的原始 Stream 大?

我正在尝试修改文件流,但遇到了一些有趣的事情。当我从原始流中读取一个字符串,然后尝试将其写入新流时,我最终得到的大小比原始流大。

我没有找到任何类似的问题。有人可以澄清发生了什么吗?我逐步完成并注意到变量的大小

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);

..无济于事。同样的问题。

.net c# memory stream

3
推荐指数
1
解决办法
295
查看次数

Nativescript导航速度非常慢

我已经在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

2
推荐指数
1
解决办法
2398
查看次数

根据子属性(子集合)对firestore进行排序

使用新的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)

javascript node.js firebase google-cloud-firestore

2
推荐指数
1
解决办法
1863
查看次数

如何在NodeJs终端中使用await?

我经常启动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 terminal node.js

1
推荐指数
1
解决办法
55
查看次数