小编Ale*_*ich的帖子

在node.js中更正异步函数导出

我的自定义模块包含以下代码:

module.exports.PrintNearestStore = async function PrintNearestStore(session, lat, lon) {
...
}
Run Code Online (Sandbox Code Playgroud)

如果在我的模块外部调用函数,它工作正常,但如果我调用内部运行时出错:

(node:24372)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):ReferenceError:PrintNearestStore未定义

当我将语法更改为:

module.exports.PrintNearestStore = PrintNearestStore;

var PrintNearestStore = async function(session, lat, lon) {

}
Run Code Online (Sandbox Code Playgroud)

它开始在模块内部工作正常,但在模块外部失败 - 我收到错误:

(node:32422)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):TypeError:mymodule.PrintNearestStore不是函数

所以我把代码更改为:

module.exports.PrintNearestStore = async function(session, lat, lon) {
    await PrintNearestStore(session, lat, lon);
}

var PrintNearestStore = async function(session, lat, lon) {
...
}
Run Code Online (Sandbox Code Playgroud)

现在它适用于所有情况:内部和外部.但是想要了解语义,是否有更美观,更短的写作方式?如何正确定义和使用异步函数:内部和外部(导出)模块?

javascript node.js async-await

41
推荐指数
3
解决办法
5万
查看次数

在Node.JS中使用async/await的正确请求

在我的程序中async,我从另一个API模块调用我的函数:

var info = await api.MyRequest(value);
Run Code Online (Sandbox Code Playgroud)

模块代码:

var request = require("request")

module.exports.MyRequest = async function MyRequest(value) {
    var options = {
        uri: "http://some_url",
        method: "GET",
        qs: {  // Query string like ?key=value&...
            key : value
        },
        json: true
    }

    try {
        var result = await request(options);
        return result;
    } catch (err) {
        console.error(err);
    }
}
Run Code Online (Sandbox Code Playgroud)

执行立即返回,但是result,并因此info包含请求对象和请求体- info.bodykey=value&...,不需要响应体.

我做错了什么?怎么修?什么是正确的request用法async,或者它只适用于这里提到的promises:为什么await不适用于节点请求模块?下面的文章提到了:在Node.js中掌握Async Await.

rest asynchronous request node.js async-await

27
推荐指数
5
解决办法
4万
查看次数

date.toLocaleDateString不是函数

有简单的函数返回错误:

错误:date.toLocaleDateString不是函数

TypeError: date.toLocaleDateString is not a function
    at FormatTime (../Src/rootdialog.js:87:58)
Run Code Online (Sandbox Code Playgroud)

功能定义:

function FormatTime(time, prefix = "") {
    var date = Date.parse(time);
    return ((typeof time != "undefined") ? prefix + date.toLocaleDateString()  : "");
}
Run Code Online (Sandbox Code Playgroud)

函数接收Date对象作为输入,但即使显式转换为Datewith Date.parse()也无济于事.使用Node.js 8.x. 有解决方案吗

PS问题是由BotBuilder架构引起的.

javascript string date node.js botframework

9
推荐指数
3
解决办法
2万
查看次数

使用实体框架 6 返回具有最大列值的记录

尝试获取列的最大日期时间值的记录ReceivedDateTime,但是数据集应该由某些Id列(不是唯一的)预先过滤。是这样解决的:

using (var db = new SystemEntities())
{
    var records = db.Table.Where(p => p.Id == Id);
    var record = records.Where(p => p.ReceivedDateTime == records.Max(r => r.ReceivedDateTime)).FirstOrDefault();
    if(record != null)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更漂亮、更简单、更短的实现、符号?谢谢!

.net c# sql linq entity-framework-6

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

有没有一种方法可以通过类名查找QObject子级?

如果我们知道它的类型和名称(如果指定),则可以找到一个孩子,如下所示:

QPushButton *button = parentWidget->findChild<QPushButton *>("button1");
Run Code Online (Sandbox Code Playgroud)

但是,每个函数QObject都有metaObject()返回的函数属性 QMetaObject*。依次QMetaObject具有功能className()。是否可以QObject通过这样的类名轻松找到:

QWidget *widget = (QWidget*)parentWidget->findByClassName("QPushButton", "button1");
Run Code Online (Sandbox Code Playgroud)

或者是让所有QWidget孩子过的唯一方法

QList<QWidget *> widgets = parentWidget->findChildren<QWidget *>("widgetname");
Run Code Online (Sandbox Code Playgroud)

然后std::find_ifmetaObject()->className()?过滤列表?

c++ qt qobject qmetaobject

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

将元组转换为对

有教育任务:编写模板函数,其中包含任意std::tuple和 2 个索引并返回std::pair,包含std::tuple具有对应索引的给定元素。

例子:

auto t = std::make_tuple(0, 3.5, "Hello");
std::pair<double, char const *> p = to_pair<1,2>(t);
// p contains 3.5 and "Hello"
Run Code Online (Sandbox Code Playgroud)

写了这样的东西:

template<int I, int J>
auto to_pair(std::tuple t) -> decltype(std::make_pair(std::get<I>(t), std::get<J>(t))) {
    return std::make_pair(std::get<I>(t), std::get<J>(t));
}
Run Code Online (Sandbox Code Playgroud)

但是得到了一个错误:

r: missing template arguments before ‘t’
auto to_pair(std::tuple t) -> decltype(std::make_pair(get<I>t, get<J>t))
                        ^
Run Code Online (Sandbox Code Playgroud)

我做错了什么,这里的正确语法是什么?

c++ tuples std c++11

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

大型模型的QCompleter

QCompleter在大型数据集(大型模型)上的工作速度稍慢:当我开始输入字符时,QCombobox它会经过几秒钟以显示带有变体的自动完成弹出窗口,而输入第二个字符QCompleter在几秒钟内也没有反应时。下一个字符工作正常。型号大小约为10万条记录。是否可以提高QCompleter性能或在第二个或第三个输入符号后显示弹出窗口?有没有很好的例子?

qt model large-data qcompleter

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

将 swf 转换为 mp4

这个答案没有帮助:将压缩的 swf 转换为 mp4,试图转换 swf 文件。

ffmpeg 输出:

$ ffmpeg -i GTDS_demo_new.swf GTDS_demo_new.mp4
ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
  configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid …
Run Code Online (Sandbox Code Playgroud)

flash mp4 ffmpeg video-conversion

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

使用常量参数连接插槽

需要使用常量参数将复选框连接到树视图中的自定义槽,如下所示:

connect(checkBox, SIGNAL(clicked(bool)), tableView, SLOT(mySlot(int col, bool)));

第一个参数类型int应该是常量,如0,1,2 ...如何在C++ 11中使用新的Qt 5连接系统和lambda表达式正确编写?

c++ lambda qt signals-slots c++11

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

Windows 中的 Qt 库链接错误

项目在 Linux 上构建良好,但在 Windows 中链接有问题。

第一期:

LNK2019: unresolved external symbol ...
LNK1120: 21 unresolved externals
Run Code Online (Sandbox Code Playgroud)

.pro 文件包含:

isEmpty(IDE_BUILD_TREE): IDE_BUILD_TREE = ../../qt-creator-debug
LIBS += -L$${IDE_BUILD_TREE}/lib/qtcreator/plugins -lMyLibrary
Run Code Online (Sandbox Code Playgroud)

笔记。 在构建之前MyLibrary部署到$${IDE_BUILD_TREE}/lib/qtcreator/plugins。使用 Qt 5.10.1 和 MSVC 2015 构建。

这里的问题/技巧是什么?怎么解决?


第二期:

在库.pro文件VERSION中定义了变量并且生成的库具有 name MyLibrary1.lib。此后我得到错误:

:-1: error: LNK1181: cannot open input file 'MyLibrary.lib'
Run Code Online (Sandbox Code Playgroud)

在这里解决问题的更好方法是:删除VERSION还是修复.pro文件?如何?


第三期:

另一个链接错误:

mydialog.obj:-1: error: LNK2001: unresolved external symbol 
"struct QMetaObject const MyLibrary::staticMetaObject" 
(?staticMetaObject@MyLibrary@@3UQMetaObject@@B)
Run Code Online (Sandbox Code Playgroud)

由于代码中的以下行而发生错误(注释掉时消失):

mydialog.cpp:

    QMetaEnum myEnum = QMetaEnum::fromType<MyLibrary::MyEnumClass>();
Run Code Online (Sandbox Code Playgroud)

mylibrary.h: …

c++ windows qt qmake linker-errors

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

QML:在 TextField 中更改光标颜色

如何在 QMLTextField元素中更改光标颜色和可能的宽度?假设我们有以下一个:

import QtQuick 2.12
import QtQuick.Controls 2.12

TextField {
    id: control
    placeholderText: qsTr("Enter description")

    background: Rectangle {
        implicitWidth: 200
        implicitHeight: 40
        color: control.enabled ? "transparent" : "#353637"
        border.color: control.enabled ? "#21be2b" : "transparent"
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使光标颜色为绿色或蓝色或其他什么?谢谢!

qt qml qt5 qtquick2 qtquickcontrols2

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

如何从登录角色撤消所有组角色

如何从登录角色撤消所有组角色?有没有一种方法可以自动执行此操作?

postgresql

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