我的自定义模块包含以下代码:
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)
现在它适用于所有情况:内部和外部.但是想要了解语义,是否有更美观,更短的写作方式?如何正确定义和使用异步函数:内部和外部(导出)模块?
在我的程序中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.body样key=value&...,不需要响应体.
我做错了什么?怎么修?什么是正确的request用法async,或者它只适用于这里提到的promises:为什么await不适用于节点请求模块?下面的文章提到了:在Node.js中掌握Async Await.
有简单的函数返回错误:
错误: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架构引起的.
尝试获取列的最大日期时间值的记录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)
有没有更漂亮、更简单、更短的实现、符号?谢谢!
如果我们知道它的类型和名称(如果指定),则可以找到一个孩子,如下所示:
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_if用metaObject()->className()?过滤列表?
有教育任务:编写模板函数,其中包含任意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)
我做错了什么,这里的正确语法是什么?
QCompleter在大型数据集(大型模型)上的工作速度稍慢:当我开始输入字符时,QCombobox它会经过几秒钟以显示带有变体的自动完成弹出窗口,而输入第二个字符QCompleter在几秒钟内也没有反应时。下一个字符工作正常。型号大小约为10万条记录。是否可以提高QCompleter性能或在第二个或第三个输入符号后显示弹出窗口?有没有很好的例子?
这个答案没有帮助:将压缩的 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) 需要使用常量参数将复选框连接到树视图中的自定义槽,如下所示:
connect(checkBox, SIGNAL(clicked(bool)), tableView, SLOT(mySlot(int col, bool)));
第一个参数类型int应该是常量,如0,1,2 ...如何在C++ 11中使用新的Qt 5连接系统和lambda表达式正确编写?
项目在 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)
由于代码中的以下行而发生错误(注释掉时消失):
QMetaEnum myEnum = QMetaEnum::fromType<MyLibrary::MyEnumClass>();
Run Code Online (Sandbox Code Playgroud)
如何在 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 ×5
c++ ×4
node.js ×3
async-await ×2
c++11 ×2
javascript ×2
.net ×1
asynchronous ×1
botframework ×1
c# ×1
date ×1
ffmpeg ×1
flash ×1
lambda ×1
large-data ×1
linq ×1
model ×1
mp4 ×1
postgresql ×1
qcompleter ×1
qmake ×1
qmetaobject ×1
qml ×1
qobject ×1
qt5 ×1
qtquick2 ×1
request ×1
rest ×1
sql ×1
std ×1
string ×1
tuples ×1
windows ×1